0

Hi I am trying to right test cases for a class in micronaut with JUnit. The class extends an abstract class AbstractShippingService which is something like this:

@Singleton
public abstract class AbstractShippingService {
    @Value("${delivery.customer.shipping-period}")
    int shippingPeriod; // This is not being initialized with application.yml value, hence giving 0 during running test

    public ShippingStatus getShippingStatus(String token, long ShippingRef, long ShippingCode);
}

The class which I am writing test for is:

@Singleton
public class ShippingService extends AbstractShippingService{
@Override
    public ShippingStatus getShippingStatus(String token, long ShippingRef, long ShippingCode) {
       ....// some code
       if (timeInDays <= shippingPeriod) {
       // some code
       }
    }
}

And here is my test:

@ExtendWith(MockitoExtension.class)
@MicronautTest(propertySources = "application.yml")
public class ShippingServiceTest {
    @Mock
    CourierService courierService;

    @InjectMocks
    ShippingService shippingService;

   @Test
   void test_shouldReturnShippingStatusAwaiting_whenNoDeliveryAgentPresent() {
      // Some methods mocked here
      assertEquals(shippingService. getShippingStatus(TOKEN, SHIPPING_REF, ShippingCode.TWO, ShippingStatus.AWAITING);
    }
}

The propertySources attribute only works for MicronuatTest but not on the class which I am writing tests for. How do I make sure the Value will get initialized ?

suvodipMondal
  • 656
  • 10
  • 27

0 Answers0