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");
        }
Beispiel #2
0
        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);
        }