using NUnit.Framework; using System.Collections; using PayrollSystemLibrary.Solution; namespace PayrollSystemLibraryTest { public class MockEmployee : Employee { double pay; public MockEmployee(double pay) : base("E101", "John Doe", 100) { this.pay = pay; } public override double Pay() { return pay; } } [TestFixture] public class TestOrganizationNoMoq { private Organization sut; MockEmployee e1; MockEmployee e2; [SetUp] public void Setup() { sut = new Organization("123-456", "Acme"); e1 = new MockEmployee(100); e2 = new MockEmployee(200); } [Test] public void TestCompanyHireEmployee() { sut.Add(e1); sut.Add(e2); Assert.That(sut.Resources, Contains.Item(e1).And.Contains(e2)); } [Test] public void TestCompanyHireCompany() { sut.Add(e1); sut.Add(e2); var c = new Organization("101", "test"); sut.Add(c); Assert.That(sut.Resources, Contains.Item(e1).And.Contains(e2)); } [Test] public void TestCompanyHireEmployeeFromDetails() { var e = sut.Add("E101", "John Doe", 20000); Assert.That(sut.Resources, Contains.Item(e)); } [Test] public void TestCompanyPayEmployees() { sut.Add(e1, e2); double result = sut.Pay(); Assert.AreEqual(300, result); } } }