public void GetAllEmployees_5NestedEmployees_5Employees()
        {
            // Arrange
            var hireDate = DateTime.Today;
            var james    = new Salesman("James", hireDate);

            var john = new Manager("John", hireDate);

            james.AddSubordinate(john);

            var jack = new Salesman("Jack", hireDate);

            john.AddSubordinate(jack);

            var jo = new Manager("Jo", hireDate);

            jack.AddSubordinate(jo);

            var jon = new Manager("Jon", hireDate);

            jo.AddSubordinate(jon);

            var jastin = new Employee("Jastin", hireDate);

            jo.AddSubordinate(jastin);

            // Act
            var count = james.GetAllEmployees().Count();

            // Assert
            Assert.AreEqual(5, count);
        }
Example #2
0
        public void AddSubordinate_SimpleCycle_ThrowsException()
        {
            var topManager = new Manager("Jason", DateTime.Today);
            var salesman   = new Salesman("James", DateTime.Today);

            topManager.AddSubordinate(salesman);

            Assert.Throws <InvalidOperationException>(() => salesman.AddSubordinate(topManager));
        }
        public void OneTimeSetUp()
        {
            var hireDate = new DateTime(2020, 7, 11);

            salesman = new Salesman("James", hireDate);

            manager = new Manager("John", hireDate);
            salesman.AddSubordinate(manager);

            employee = new Employee("Jack", hireDate);
            manager.AddSubordinate(employee);

            employee = new Employee("Jo", hireDate);
            manager.AddSubordinate(employee);
        }