/// <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(); }
/// <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(); }
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))); }
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))); }