public void ForgettingAnItemNotAlreadyStocked_ThrowsAnException() { // Arrange var sfm = new SmartFridgeManager(); var itemType = 123L; // Act & Assert Assert.Throws <InvalidOperationException>(() => sfm.ForgetItem(itemType)); }
public void AnUnaddedItemCanNotBeRemoved() { // Arrange var sfm = new SmartFridgeManager(); var itemUUID = "8976"; // Act & Assert Assert.Throws <InvalidOperationException>(() => sfm.HandleItemRemoved(itemUUID)); }
public void ItemCannotHaveAFillFactorGreaterThanOne() { // Arrange var sfm = new SmartFridgeManager(); var itemUUID = "8976"; var itemType = 123; var itemName = "Orange Juice"; double fillFactor = 2.0d; // Act & Assert Assert.Throws <ArgumentOutOfRangeException>(() => sfm.HandleItemAdded(itemType, itemUUID, itemName, fillFactor)); }
public void SameItemCannotBeAddedTwice() { // Arrange var sfm = new SmartFridgeManager(); var itemUUID = "8976"; var itemType = 123; var itemName = "Orange Juice"; double fillFactor = 1.0d; sfm.HandleItemAdded(itemType, itemUUID, itemName, fillFactor); // Act & Assert Assert.Throws <InvalidOperationException>(() => sfm.HandleItemAdded(itemType, itemUUID, itemName, fillFactor)); }
public void AnAddedItemCanBeRemoved() { // Arrange var sfm = new SmartFridgeManager(); var itemType = 123; var itemUUID = "8976"; var itemName = "Orange Juice"; double fillFactor = 1.0d; // Act sfm.HandleItemAdded(itemType, itemUUID, itemName, fillFactor); sfm.HandleItemRemoved(itemUUID); // Assert // If we got here without exception that's good enough for this test }
public void GetFillFactor_WhenFridgeHasOneItemOfGivenType() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "1897"; var itemType = 123L; var itemName = "Orange Juice"; double item1FillFactor = 0.25d; sfm.HandleItemAdded(itemType, item1UUID, itemName, item1FillFactor); // Act var actualFillFactor = sfm.GetFillFactor(itemType); // Assert Assert.Equal(item1FillFactor, actualFillFactor); }
public void GetItemsForShoppingListReturnsCorrectItems_WhenFridgeHasNoAlmostEmptyItems() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "18976"; var itemType = 123L; var itemName = "Orange Juice"; double item1FillFactor = 0.75d; sfm.HandleItemAdded(itemType, item1UUID, itemName, item1FillFactor); double thresholdFillFactor = 0.5; // Act var items = sfm.GetItems(thresholdFillFactor); // Assert Assert.Empty(items); }
public void GetItemsForShoppingListReturnsCorrectItems_WhenAnItemIsForgottenItShouldNotBeReturned() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "1897"; var itemType = 123L; var itemName = "Orange Juice"; double item1FillFactor = 1.0d; sfm.HandleItemAdded(itemType, item1UUID, itemName, item1FillFactor); double thresholdFillFactor = 0.5; // Act sfm.ForgetItem(itemType); var items = sfm.GetItems(thresholdFillFactor); // Assert Assert.Empty(items); }
public void GetItems_NegativeThresholdNotAllowed() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "1897"; var ojItemType = 123L; var itemName = "Orange Juice"; double ojFillFactor = 0.25d; sfm.HandleItemAdded(ojItemType, item1UUID, itemName, ojFillFactor); var item2UUID = "2897"; double item2FillFactor = 1.0d; var otherItemType = 333L; sfm.HandleItemAdded(otherItemType, item2UUID, itemName, item2FillFactor); var threshold = -1.0d; // Act & Assert Assert.Throws <ArgumentOutOfRangeException>(() => sfm.GetItems(threshold)); }
public void GetItemsForShoppingListReturnsCorrectItems_WhenFridgeHasOneItemAlmostEmpty() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "18976"; var itemType = 123L; var itemName = "Orange Juice"; double item1FillFactor = 0.25d; sfm.HandleItemAdded(itemType, item1UUID, itemName, item1FillFactor); double thresholdFillFactor = 0.5; object[] expectedResult = new object[] { itemType, item1FillFactor }; // Act var items = sfm.GetItems(thresholdFillFactor); // Assert Assert.Single(items); Assert.Contains(expectedResult, items); }
public void GetFillFactor_WhenFridgeHasUnrelatedItems() { // Arrange var sfm = new SmartFridgeManager(); var item1UUID = "1897"; var ojItemType = 123L; var itemName = "Orange Juice"; double ojFillFactor = 0.25d; sfm.HandleItemAdded(ojItemType, item1UUID, itemName, ojFillFactor); var item2UUID = "2897"; double item2FillFactor = 1.0d; var otherItemType = 333L; sfm.HandleItemAdded(otherItemType, item2UUID, itemName, item2FillFactor); // Act var actualFillFactor = sfm.GetFillFactor(ojItemType); // Assert Assert.Equal(ojFillFactor, actualFillFactor); }
public SmartFridgeManagerTests() { _smartFridge = new Mock <ISmartFridge>(); _smartFridgeManager = new SmartFridgeManager(_smartFridge.Object); }