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 EmployeeComposite_Accept_AllSuboridinatesAcceptShouldBeCalled() { // Arrange var mockSubordinate1 = new Mock <EmployeeLeaf>(SubordinatedEmployee1); var mockSubordinate2 = new Mock <EmployeeLeaf>(SubordinatedEmployee2); employeeComposite.Add(mockSubordinate1.Object); employeeComposite.Add(mockSubordinate2.Object); IEmployeeVisitor visitor = mockVisitor.Object; // Act employeeComposite.Accept(visitor); // Assert mockSubordinate1.Verify(mock => mock.Accept(It.Is <IEmployeeVisitor>(e => e == visitor)), Times.Once); mockSubordinate2.Verify(mock => mock.Accept(It.Is <IEmployeeVisitor>(e => e == visitor)), Times.Once); }