/SolarSystem.Tests/PlanetarySystemTests.cs
C# | 51 lines | 43 code | 8 blank | 0 comment | 0 complexity | d5c5bc979ebcbbe92da212281aa52cbd MD5 | raw file
Possible License(s): BSD-3-Clause
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Moq;
- using NUnit.Framework;
-
- namespace SolarSystem.Tests
- {
- [TestFixture]
- public class PlanetarySystemTests
- {
- [Test]
- public void Constructor()
- {
- var mockPlanetOne = new Mock<IPlanet>();
- var mockPlanetTwo = new Mock<IPlanet>();
-
- var planets = new[] { mockPlanetOne.Object, mockPlanetTwo.Object };
- var system = new PlanetarySystem(planets);
-
- Assert.That(system.Planets.Contains(mockPlanetOne.Object));
- Assert.That(system.Planets.Contains(mockPlanetTwo.Object));
- Assert.That(system.TimeElapsed, Is.EqualTo(TimeSpan.Zero));
- }
-
- [Test]
- public void TickCallsTickOnAllPlanets()
- {
- var mockPlanetOne = new Mock<IPlanet>();
- var mockPlanetTwo = new Mock<IPlanet>();
-
- var planets = new[] { mockPlanetOne.Object, mockPlanetTwo.Object };
- var system = new PlanetarySystem(planets);
-
- system.ElapseDays(5);
-
- mockPlanetOne.Verify(v => v.ElapseDays(5), Times.Once());
- mockPlanetTwo.Verify(v => v.ElapseDays(5), Times.Once());
- }
-
- [Test]
- public void TickIncreasesTimeElapsed()
- {
- var system = new PlanetarySystem(Enumerable.Empty<IPlanet>());
- system.ElapseDays(5);
- Assert.That(system.TimeElapsed, Is.EqualTo(TimeSpan.FromDays(5)));
- }
- }
- }