public void GivenTwoScannersOnSameStream_WhenItemRemovedOnSecondScanner_ShouldRemoveItem() { _testeeAfterwards.MonitorEvents(); var item1 = new TestItem(1); var item2 = new TestItem(2); var item3 = new TestItem(3); _testee.ItemDetected(item3); _testee.ItemDetected(item2); _testeeAfterwards.ItemDetected(item3); _testee.ItemDetected(item1); _testeeAfterwards.ItemDetected(item1); // <-- item2 is missing _testeeAfterwards.ShouldRaise("ItemRemovedEvent"); }
public void GivenItem_WhenDetectNewItem_ShouldRaiseEvent() { var oldItem = new TestItem(1); _testee.ItemDetected(oldItem); _testee.MonitorEvents(); _testee.ItemDetected(oldItem); _testee.ShouldNotRaise("NewItemDetectedEvent", "this item is not new it was just scanned a second time"); var newItem = new TestItem(2); _testee.ItemDetected(newItem); _testee .ShouldRaise("NewItemDetectedEvent") .WithArgs <ItemEventArgs <TestItem> >(x => x.Item == newItem); _testee .ShouldRaise("ItemDetectedEvent") .WithArgs <ItemEventArgs <TestItem> >(x => x.Item == newItem); }