public void T4_trains_are_created_by_companies_and_have_a_unique_name() { ICity s = CityFactory.CreateCity("Paris"); ICompany c = s.AddCompany("SNCF"); Action a = () => c.AddTrain(null); a.ShouldThrow <ArgumentException>(); ITrain p1 = c.AddTrain("train1"); p1.Company.Should().BeSameAs(c); p1.Name.Should().BeEquivalentTo("train1"); p1.Assignment.Should().BeNull(); Action a1 = () => c.AddTrain("train1"); a1.ShouldThrow <ArgumentException>(); ITrain p2 = c.AddTrain("train2"); p2.Company.Should().BeSameAs(c); p2.Name.Should().BeEquivalentTo("train2"); p2.Assignment.Should().BeNull(); Action a2 = () => c.AddTrain("train2"); a2.ShouldThrow <ArgumentException>(); p1.GetType().GetProperty("Name").GetSetMethod().Should().BeNull("Train.Name must NOT be writeable."); p1.GetType().GetProperty("Assignment").GetSetMethod().Should().BeNull("Train.Assignment must NOT be writeable."); p1.GetType().GetProperty("City").GetSetMethod().Should().BeNull("Train.City must NOT be writeable."); p1.GetType().GetConstructors(BindingFlags.Instance | BindingFlags.Public).Should().BeEmpty("Train must not expose any public constructors."); }
/// <summary> /// Perform an update. /// </summary> public void Update() { long now = Environment.TickCount; long elapsed = (long)TimeSpan.FromTicks(now - lastUpdate).TotalSeconds; if (task == null) { this.task = this.cloud.BeginTask(train.GetType().Name); } this.iteration++; if (elapsed > 10) { this.lastUpdate = now; StringBuilder status = new StringBuilder(); status.Append("Iteration #"); status.Append(Format.FormatInteger(this.iteration)); status.Append(" - Error: "); status.Append(Format.FormatPercent(train.Error)); this.task.SetStatus(status.ToString()); } }