PageRenderTime 31ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/SolarSystem.Tests/PlanetarySystemTests.cs

https://bitbucket.org/efouts/solarsystem
C# | 51 lines | 43 code | 8 blank | 0 comment | 0 complexity | d5c5bc979ebcbbe92da212281aa52cbd MD5 | raw file
Possible License(s): BSD-3-Clause
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Moq;
  7. using NUnit.Framework;
  8. namespace SolarSystem.Tests
  9. {
  10. [TestFixture]
  11. public class PlanetarySystemTests
  12. {
  13. [Test]
  14. public void Constructor()
  15. {
  16. var mockPlanetOne = new Mock<IPlanet>();
  17. var mockPlanetTwo = new Mock<IPlanet>();
  18. var planets = new[] { mockPlanetOne.Object, mockPlanetTwo.Object };
  19. var system = new PlanetarySystem(planets);
  20. Assert.That(system.Planets.Contains(mockPlanetOne.Object));
  21. Assert.That(system.Planets.Contains(mockPlanetTwo.Object));
  22. Assert.That(system.TimeElapsed, Is.EqualTo(TimeSpan.Zero));
  23. }
  24. [Test]
  25. public void TickCallsTickOnAllPlanets()
  26. {
  27. var mockPlanetOne = new Mock<IPlanet>();
  28. var mockPlanetTwo = new Mock<IPlanet>();
  29. var planets = new[] { mockPlanetOne.Object, mockPlanetTwo.Object };
  30. var system = new PlanetarySystem(planets);
  31. system.ElapseDays(5);
  32. mockPlanetOne.Verify(v => v.ElapseDays(5), Times.Once());
  33. mockPlanetTwo.Verify(v => v.ElapseDays(5), Times.Once());
  34. }
  35. [Test]
  36. public void TickIncreasesTimeElapsed()
  37. {
  38. var system = new PlanetarySystem(Enumerable.Empty<IPlanet>());
  39. system.ElapseDays(5);
  40. Assert.That(system.TimeElapsed, Is.EqualTo(TimeSpan.FromDays(5)));
  41. }
  42. }
  43. }