예제 #1
0
        public void GivenItemsInModuleA_WhenRouteAllToModuleB_ShouldRoute()
        {
            ModuleA.Entities.PlatformItems.Add(new PlatformItem());

            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleA.TestCurrentAllPortRoutings.Should().Contain(0, "forcing to ModuleB was enabled and port 0 is connected to ModuleB");
        }
예제 #2
0
        public void GivenModuleEmptyAndRouteAll_WhenGetsFull_ShouldReleaseRouteAll()
        {
            ModuleB.LimitItemCount = 1;
            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleB.SimulateItemDetected(new PlatformItem());

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0);
        }
예제 #3
0
        public void GivenModuleHasItemAndFull_WhenRouteAll_ShouldNotRouteAll()
        {
            ModuleB.LimitItemCount = 1;
            ModuleB.Entities.PlatformItems.Add(new PlatformItem());

            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0);
        }
예제 #4
0
        public void GivenRouteAll_WhenModuleStops_ShouldNotRoute()
        {
            ModuleA.Entities.PlatformItems.Add(new PlatformItem());
            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleB.Stop();

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0, "ModuleA must not route items because target is in OFF state now");
        }
예제 #5
0
        public void GivenTargetIsFull_WhenRouteAll_ShouldNotRoute()
        {
            ModuleA.Entities.PlatformItems.Add(new PlatformItem());
            ModuleB.SimulateIsFull(0);

            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0, "ModuleA must not route items because target is full");
        }
예제 #6
0
        public void WhenReleaseRouteAll_ShouldNotRoute()
        {
            ModuleA.Entities.PlatformItems.Add(new PlatformItem());

            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);
            ModuleBusManager.ReleaseForcePath(ModuleA, ModuleB, 0, 0);

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0, "Module must route nothing because it was released by ModuleBusManager");
        }
예제 #7
0
        public void GivenRouteAll_WhenDestinationStops_ShouldStopRouting()
        {
            var item = new PlatformItem();

            ModuleA.Entities.PlatformItems.Add(item);
            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleB.Stop();

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(0, "ModuleA must not route items because target is full now");
        }
예제 #8
0
        public void GivenModuleFullAndRouteAll_WhenNotFullAnymore_ShouldRouteAll()
        {
            var item = new PlatformItem();

            ModuleB.LimitItemCount = 1;
            ModuleB.Entities.PlatformItems.Add(item);
            ModuleBusManager.ForcePath(ModuleA, ModuleB, 0, 0);

            ModuleA.SimulateItemDetected(item);

            ModuleA.TestCurrentAllPortRoutings.Should().HaveCount(1);
        }