示例#1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="idGenerator">A generator to create ids to sorting lines</param>
 /// <param name="configuration">A configuration object</param>
 /// <param name="lines">The character representation of all sorting lines</param>
 public Yard(IIdGenerator idGenerator, IConfiguration configuration, IEnumerable <IEnumerable <char> > lines)
 {
     IdGenerator    = idGenerator;
     Configuration  = configuration;
     SortingLines   = CreateSortingLines(lines);
     YardLocomotive = new YardLocomotive(Configuration);
     Yardmaster     = new Yardmaster(YardLocomotive);
     TrainLine      = new TrainLine();
 }
示例#2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="idGenerator">A generator to create ids to sorting lines</param>
 /// <param name="configuration">A configuration object</param>
 /// <param name="lines">The character representation of all sorting lines</param>
 public Yard(IIdGenerator idGenerator, IConfiguration configuration, IEnumerable<IEnumerable<char>> lines)
 {
     IdGenerator = idGenerator;
     Configuration = configuration;
     SortingLines = CreateSortingLines(lines);
     YardLocomotive = new YardLocomotive(Configuration);
     Yardmaster = new Yardmaster(YardLocomotive);
     TrainLine = new TrainLine();
 }
示例#3
0
        public void AssembleTrain_SetDestination_RemovesAllCarsFromSortingLines()
        {
            // arrange
            var map = Yard.GetLinesMap(Destination);

            // act
            var steps = Yardmaster.AssembleTrain(map);

            // assert
            var sortingLines = Yard.GetSortingLines();

            Assert.IsNotNull(sortingLines);
            Assert.IsFalse(sortingLines.Any(line => line.ContainsCarToDestination(Destination)));
        }
示例#4
0
        public void AssembleTrain_SetDestination_HasExpectedCarsInTrainLine()
        {
            // arrange
            var map = Yard.GetLinesMap(Destination);

            // act
            Yardmaster.AssembleTrain(map);

            // assert
            var trainLine = Yard.TrainLine;

            Assert.IsNotNull(trainLine);

            var cars = trainLine.ToString().ToCharArray();

            Assert.AreEqual(2, cars.Count());
            Assert.IsTrue(cars.All(car => Destination.Equals(car)));
        }