public void GivenTwoScannersOnSameStream_ShouldBuildConsistendList()
        {
            _testee.MonitorEvents();
            _testeeAfterwards.MonitorEvents();

            _testee.ItemDetected(new TestItem(5));
            _testee.ItemDetected(new TestItem(4));
            _testeeAfterwards.ItemDetected(new TestItem(5));
            _testeeAfterwards.ItemDetected(new TestItem(4));
            _testee.ItemDetected(new TestItem(3));
            _testeeAfterwards.ItemDetected(new TestItem(3));
            _testee.ItemDetected(new TestItem(2));
            _testee.ItemDetected(new TestItem(1));
            _testeeAfterwards.ItemDetected(new TestItem(2));
            _testeeAfterwards.ItemDetected(new TestItem(1));

            _testee.ShouldNotRaise("ItemRemovedEvent");
            _testeeAfterwards.ShouldNotRaise("ItemRemovedEvent");
            var list1 = _testee.GetOrderedList();
            var list2 = _testeeAfterwards.GetOrderedList();

            list1.Count.Should().Be(5);
            list2.Count.Should().Be(5);
            list1[0].Should().Be(new TestItem(5));
            list1[4].Should().Be(new TestItem(1));
            list2[0].Should().Be(new TestItem(5));
            list2[4].Should().Be(new TestItem(1));
            list1[3].ItemInFront.Should().Be(list1[2]);
            list1[2].ItemBehind.Should().Be(list1[3]);
        }
Exemple #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);
        }