public void AddTown_ShouldNotAddTwice()
        {
            // Act
            RailwaySystem.AddTown(Town);

            // Assert
            Assert.True(RailwaySystem.GetTowns().Count() == 1);
        }
        public void GetTownByName_ShouldReturnTown()
        {
            // Act
            var town = RailwaySystem.GetTownByName("A");

            // Assert
            Assert.Equal(town, Town);
        }
        public void Build_ShouldCreatePathInstance()
        {
            // Arrange
            var railwaySystem = new RailwaySystem();

            railwaySystem.AddTown(new Town("A"));
            railwaySystem.AddTown(new Town("B"));
            var builder = new PathBuilder();

            // Act
            var path = builder.Build(railwaySystem, "A", "B");

            // Assert
            Assert.True(path.Stops.Count() == 2);
            Assert.True(path.Stops.ElementAt(0).Name == "A");
            Assert.True(path.Stops.ElementAt(1).Name == "B");
        }
 public void GetTownByName_WhenTownDoesNotExists_ShouldThrowUnknownTownException()
 {
     // Act and assert
     Assert.Throws <UnknownTownException>(() => RailwaySystem.GetTownByName("B"));
 }
 public RailwaySystemUnitTests()
 {
     RailwaySystem = new RailwaySystem();
     Town          = new Town("A");
     RailwaySystem.AddTown(Town);
 }