public CompositePatternTest() { minion1 = new Employee("Bob", 300.0); minion2 = new Employee("Jack", 200.0); minion3 = new Employee("Vincent", 220.0); middleBoss = new EmployeeComposite("Sarah", 264.0); headBoss = new EmployeeComposite("Jessica", 310.0); }
public EmployeeEntitiesTests() { mockVisitor = new Mock <IEmployeeVisitor>(); employeeLeaf = new EmployeeLeaf(Employee); employeeComposite = new EmployeeComposite(Employee); employeeFactory = new EmployeeComponentFactory(); }
public void EmployeeWithSuperiorVisitor_VisitEmployeeComposite_NullEmployeeCompositeShouldRaiseException() { // Arrange EmployeeComposite employeeComposite = null; // Act Action act = () => employeeWithSuperiorVisitor.VisitEmployeeComposite(employeeComposite); // Assert ArgumentNullException exception = Assert.Throws <ArgumentNullException>(act); Assert.Equal(nameof(employeeComposite), exception.ParamName); }
public void VisitEmployeeComposite(EmployeeComposite employeeComposite) { if (employeeComposite is null) { throw new ArgumentNullException(nameof(employeeComposite)); } if (employeeComposite.Employee.Id.ToString() == _superiorId) { EmployeesWithSuperior = employeeComposite .EmployeeComponents.Select(c => c.Employee) .ToList(); } }
public void EmployeeWithSuperiorVisitor_VisitEmployeeComposite_SuperiorEmployeeCompositeShouldAddSubordinatedToList() { // Arrange EmployeeComposite superiorEmployee = CreateSuperiorComposite(); List <IEmployee> expectedList = new List <IEmployee> { SubordinatedEmployee1, SubordinatedEmployee2 }; // Act employeeWithSuperiorVisitor.VisitEmployeeComposite(superiorEmployee); var result = employeeWithSuperiorVisitor.EmployeesWithSuperior; // Assert result.Should().BeEquivalentTo(expectedList); }
private EmployeeComposite CreateSuperiorComposite() { var superiorEmployee = SuperiorEmployee; var subordinatedEmployee1 = SubordinatedEmployee1; var subordinatedEmployee2 = SubordinatedEmployee2; var subordinatedComposite1 = new EmployeeComposite(subordinatedEmployee1); var subordinatedComposite2 = new EmployeeComposite(subordinatedEmployee2); var superiroComposite = new EmployeeComposite(superiorEmployee); superiroComposite.Add(subordinatedComposite1); superiroComposite.Add(subordinatedComposite2); return(superiroComposite); }
public void VisitEmployeeComposite(EmployeeComposite employeeComposite) { VisitEmployeeComponent(employeeComposite); }