createMock( WpAdapter::class ); $formFactoryMock = $this->createMock( FormFactory::class ); $optionsProviderMock = $this->createMock( OptionsProvider::class ); $wpAdapterMock->method( '__' ) ->willReturnCallback( function ( string $text ): string { return $text; } ); $orderMock = $this->createMock( Order::class ); $orderMock->method( 'hasToFillCustomsDeclaration' )->willReturn( false ); $form = new Form( $formFactoryMock, $optionsProviderMock, $wpAdapterMock ); $invalidFields = [ Form::FIELD_VALUE, Form::FIELD_WEIGHT ]; $expectedMessage = 'Please fill in all required shipment details (value, weight) before submitting.'; $this->assertEquals( $expectedMessage, $form->getInvalidFieldsMessageFromValidationResult( $invalidFields, $orderMock ) ); } public function testGetInvalidFieldsMessageWithInvalidFieldsAndCustomsDeclaration(): void { $wpAdapterMock = $this->createMock( WpAdapter::class ); $formFactoryMock = $this->createMock( FormFactory::class ); $optionsProviderMock = $this->createMock( OptionsProvider::class ); $wpAdapterMock->method( '__' ) ->willReturnCallback( function ( string $text ): string { return $text; } ); $orderMock = $this->createMock( Order::class ); $orderMock->method( 'hasToFillCustomsDeclaration' )->willReturn( true ); $form = new Form( $formFactoryMock, $optionsProviderMock, $wpAdapterMock ); $invalidFields = [ Form::FIELD_VALUE, Form::FIELD_WEIGHT ]; $expectedMessage = 'Please fill in all required shipment details (value, weight) before submitting. Customs declaration has to be filled in order detail.'; $this->assertEquals( $expectedMessage, $form->getInvalidFieldsMessageFromValidationResult( $invalidFields, $orderMock ) ); } }