@Test public void shouldReturnReturnedToLGAUtilizationItemWithCorrectUtilizationValue() throws Exception { commodityService.initialise(new User("test", "pass")); categoryService.clearCache(); Commodity commodity = categoryService.all().get(6).getCommodities().get(0); Calendar calendar = Calendar.getInstance(); Date today = calendar.getTime(); assertNotNull(commodity); adjust(commodity, 2, false, AdjustmentReason.RETURNED_TO_LGA, adjustmentService); adjust(commodity, 3, false, AdjustmentReason.RETURNED_TO_LGA, adjustmentService); List<UtilizationItem> utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, today); int expectedValue = 5; int utilizationValueIndex = DateUtil.dayNumber(today) - 1; assertThat( utilizationItems.get(5).getUtilizationValues().get(utilizationValueIndex).getValue(), is(expectedValue)); }
@Test public void shouldSaveCommodityActionWithDataSet() throws Exception { commodityService.initialise(new User("test", "pass")); Commodity testCommodity = commodityService.all().get(0); assertThat(testCommodity.getCommodityActionsSaved().size(), is(not(0))); CommodityAction actual = (CommodityAction) testCommodity.getCommodityActionsSaved().toArray()[0]; assertThat(actual.getCommodityActionDataSets(), is(notNullValue())); }
@Test public void shouldLoadAllCommodities() throws IOException { commodityService.initialise(new User("test", "pass")); List<Commodity> expectedCommodities = getDefaultCommodities(application); List<Commodity> commodities = commodityService.all(); assertThat(commodities.size(), is(8)); for (Commodity commodity : expectedCommodities) { assertThat(expectedCommodities, contains(commodity)); } }
@Test public void shouldReloadMostDispensedCommodities() throws Exception { commodityService.initialise(new User("test", "pass")); categoryService.clearCache(); List<Commodity> mostConsumed = commodityService.getMost5HighlyDispensedCommodities(); Commodity commodity = mostConsumed.get(0); String previousMostDispensedCommodity = commodity.getName(); dispense(commodity, 20, dispensingService); commodity = commodityService.getMost5HighlyDispensedCommodities().get(0); assertThat(commodity.getName(), is(previousMostDispensedCommodity)); }
@Test public void shouldReturnMostConsumedCommodities() throws Exception { commodityService.initialise(new User("test", "pass")); categoryService.clearCache(); List<Commodity> allCommodities = commodityService.all(); Dispensing dispensing = new Dispensing(); Commodity commodity = allCommodities.get(2); DispensingItem newDispensingItem = new DispensingItem(commodity, 3); dispensing.addItem(newDispensingItem); dispensingService.addDispensing(dispensing); List<Commodity> commodities = commodityService.getMost5HighlyDispensedCommodities(); assertThat(commodities.get(0).getName(), is("Quinine")); }
@Test public void shouldReturnClosingBalanceUtilizationItemWithCorrectUtilizationValue() throws Exception { commodityService.initialise(new User("test", "pass")); categoryService.clearCache(); Commodity commodity = categoryService.all().get(0).getCommodities().get(0); Calendar calendar = Calendar.getInstance(); Date today = calendar.getTime(); int stockOnHand = commodity.getStockOnHand(); dispense(commodity, 3, dispensingService); List<UtilizationItem> utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, today); int expectedClosingStock = stockOnHand - 3; int utilizationValueIndex = DateUtil.dayNumber(today) - 1; assertThat( utilizationItems.get(4).getUtilizationValues().get(utilizationValueIndex).getValue(), is(expectedClosingStock)); }
@Test public void shouldReturnCorrectNumberOfUtilizationValuesForTheMonthInTheUtilizationItem() throws Exception { Commodity commodity = categoryService.all().get(0).getCommodities().get(0); Calendar calendar = Calendar.getInstance(); Integer expectedItems = DateUtil.dayNumber(calendar.getTime()); List<UtilizationItem> utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, calendar.getTime()); assertThat(utilizationItems.get(0).getUtilizationValues().size(), is(expectedItems)); calendar.add(Calendar.MONTH, 2); utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, calendar.getTime()); assertThat(utilizationItems.size(), is(0)); calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); expectedItems = DateUtil.maxMonthDate(calendar.getTime()); utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, calendar.getTime()); assertThat(utilizationItems.get(0).getUtilizationValues().size(), is(expectedItems)); }
@Test public void shouldReturnReceivedUtilizationItemWithCorrectUtilizationValue() throws Exception { commodityService.initialise(new User("test", "pass")); categoryService.clearCache(); Commodity commodity = categoryService.all().get(0).getCommodities().get(0); Calendar calendar = Calendar.getInstance(); Date today = calendar.getTime(); receive(commodity, 2, receiveService); receive(commodity, 3, receiveService); List<UtilizationItem> utilizationItems = commodityService.getMonthlyUtilizationItems(commodity, today); int expectedValue = 5; int utilizationValueIndex = DateUtil.dayNumber(today) - 1; assertThat( utilizationItems.get(2).getUtilizationValues().get(utilizationValueIndex).getValue(), is(expectedValue)); }
@Test public void shouldSaveStockLevelsOnInitialise() throws Exception { setUpInjection( this, new AbstractModule() { @Override protected void configure() { bind(LmisServer.class).toInstance(mockLmisServer); bind(CommodityActionService.class).toInstance(commodityActionService); } }); spyedCommodityService = spy(commodityService); spyedCommodityService.initialise(new User("user", "user")); verify(commodityActionService).syncCommodityActionValues((User) any()); }
@Test public void shouldGetMonthlyStockCountDayAndSaveItToPreferences() throws Exception { commodityService.initialise(new User("test", "pass")); assertThat(sharedPreferences.getInt(CommodityService.MONTHLY_STOCK_COUNT_DAY, 0), is(MOCK_DAY)); }
@Test public void shouldSaveCommodityCommodityActivities() { commodityService.initialise(new User("test", "pass")); Commodity testCommodity = commodityService.all().get(0); assertThat(testCommodity.getCommodityActionsSaved().size(), is(not(0))); }
@Test public void testShouldPrepareDefaultCommodities() throws Exception { commodityService.initialise(new User("test", "pass")); verifyAllCommodityCategories(); }