public void should_store_bag_using_vacancy_rate_strategy() { Locker locker1 = new Locker(2); Locker locker2 = new Locker(2); StrategyRobot robot = new StrategyRobot(new List <Locker> { locker2, locker1 }, AvailableLockerStrategies.MoreVacancyRate); Bag bag1 = new Bag(); Bag bag2 = new Bag(); robot.Receive(bag1); var ticket = robot.Receive(bag2); Assert.Same(bag2, locker1.Pick(ticket)); }
public void should_store_bag_using_available_count_strategy() { Locker locker1 = new Locker(2); Locker locker2 = new Locker(2); var strategyRobot = new StrategyRobot(new List <Locker> { locker2, locker1 }, AvailableLockerStrategies.MoreAvailableCapacity); Bag bag1 = new Bag(); Bag bag2 = new Bag(); strategyRobot.Receive(bag1); var ticket = strategyRobot.Receive(bag2); Assert.Same(bag2, locker1.Pick(ticket)); }
public void should_store_bag_into_multiple_lockers_in_order() { Locker locker1 = new Locker(1); Locker locker2 = new Locker(1); StrategyRobot robot = new StrategyRobot(new List <Locker> { locker1, locker2 }); Bag bag1 = new Bag(); Bag bag2 = new Bag(); var ticket1 = robot.Receive(bag1); var ticket2 = robot.Receive(bag2); Assert.Same(bag1, locker1.Pick(ticket1)); Assert.Same(bag2, locker2.Pick(ticket2)); }
public void should_pick_bag_from_robot() { Bag bag = new Bag(); StrategyRobot robot = new StrategyRobot(new List <Locker> { new Locker(1) }); var ticket = robot.Receive(bag); Assert.Same(bag, robot.Pick(ticket)); }
public void should_return_null_when_give_a_bag_to_robot_and_locker_is_full() { Bag bag = new Bag(); Locker locker = new Locker(0); StrategyRobot robot = new StrategyRobot(new List <Locker> { locker }); Assert.Null(robot.Receive(bag)); }
public void should_get_a_valid_ticket_when_give_bag_to_strategy_robot() { Bag bag = new Bag(); Locker locker = new Locker(1); StrategyRobot robot = new StrategyRobot(new List <Locker> { locker }); var ticket = robot.Receive(bag); Bag bag2 = locker.Pick(ticket); Assert.Same(bag, bag2); }