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]); }
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); }