コード例 #1
0
        public void Save_Manager_Only_Tests()
        {
            // Insert
            var commandAggregate = new SaveManagerCommandAggregate(new SaveManagerInputDto
            {
                Department = "IT",
                Name       = "Eli"
            });

            commandAggregate.Save();

            var managerId = commandAggregate.RootEntity.Id;

            // Read
            var queryAggregate = new ManagerQueryAggregate();

            var managerDto = queryAggregate.Get(managerId);

            Assert.AreEqual(managerId, managerDto.EmployeeId);

            Assert.AreEqual("IT", managerDto.Department);

            Assert.AreEqual("Eli", managerDto.Name);

            Assert.AreEqual(0, managerDto.Employees.Count());

            // Update
            commandAggregate = new SaveManagerCommandAggregate(new SaveManagerInputDto
            {
                ManagerId  = managerId,
                Department = "Information Technology",
                Name       = "Eliahu"
            });

            commandAggregate.Save();

            // Read
            queryAggregate = new ManagerQueryAggregate();

            managerDto = queryAggregate.Get(managerId);

            Assert.AreEqual(managerId, managerDto.EmployeeId);

            Assert.AreEqual("Information Technology", managerDto.Department);

            Assert.AreEqual("Eliahu", managerDto.Name);

            Assert.AreEqual(0, managerDto.Employees.Count());

            // Delete
            //var deleteAggregate = new DeleteManagerCommandAggregate(new DeleteManagerInputDto
            //{
            //    Id = managerId.Value
            //});

            //deleteAggregate.Save();

            //managerDto = queryAggregate.Get(managerId);

            //Assert.IsNull(managerDto);
        }
コード例 #2
0
        public void Save_Manager_With_Employees_Tests()
        {
            // Insert
            var commandAggregate = new SaveManagerCommandAggregate(new SaveManagerInputDto
            {
                Department = "IT",
                Name       = "Eli",
                Employees  = new List <EmployeeInputDto>
                {
                    new EmployeeInputDto
                    {
                        Name = "Yana"
                    },
                    new EmployeeInputDto
                    {
                        Name = "Mark"
                    },
                    new EmployeeInputDto
                    {
                        Name = "Sarah"
                    }
                }
            });

            commandAggregate.Save();

            var managerId = commandAggregate.RootEntity.Id;

            // Read
            var queryAggregate = new ManagerQueryAggregate();

            var managerDto = queryAggregate.Get(managerId);

            Assert.AreEqual(managerId, managerDto.EmployeeId);

            Assert.AreEqual("IT", managerDto.Department);

            Assert.AreEqual("Eli", managerDto.Name);

            Assert.AreEqual(3, managerDto.Employees.Count());

            var employeeDto = managerDto.Employees.ElementAt(0);

            Assert.AreEqual("Yana", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            employeeDto = managerDto.Employees.ElementAt(1);

            Assert.AreEqual("Mark", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            employeeDto = managerDto.Employees.ElementAt(2);

            Assert.AreEqual("Sarah", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            // Update
            commandAggregate = new SaveManagerCommandAggregate(new SaveManagerInputDto
            {
                ManagerId  = managerId,
                Department = "Information Technology",
                Name       = "Eliahu",
                Employees  = new List <EmployeeInputDto>
                {
                    new EmployeeInputDto
                    {
                        Name = "Jorge"
                    },
                    new EmployeeInputDto
                    {
                        Name = "Moshe"
                    },
                    new EmployeeInputDto
                    {
                        Name = "Daphni"
                    }
                }
            });

            commandAggregate.Save();

            // Read
            queryAggregate = new ManagerQueryAggregate();

            managerDto = queryAggregate.Get(managerId);

            Assert.AreEqual(managerId, managerDto.EmployeeId);

            Assert.AreEqual("Information Technology", managerDto.Department);

            Assert.AreEqual("Eliahu", managerDto.Name);

            employeeDto = managerDto.Employees.ElementAt(0);

            Assert.AreEqual("Jorge", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            employeeDto = managerDto.Employees.ElementAt(1);

            Assert.AreEqual("Moshe", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            employeeDto = managerDto.Employees.ElementAt(2);

            Assert.AreEqual("Daphni", employeeDto.Name);

            Assert.AreEqual(managerDto.EmployeeId, employeeDto.SupervisorId);

            // Read again using the GetAllEmployeesForManagerQueryAggregate
            //var queryLinkedAggregate = new GetAllEmployeesForManagerQueryAggregate();

            //var employeeDtos = queryLinkedAggregate.GetAll(user: null);

            //employeeDto = employeeDtos.ElementAt(0);

            //Assert.AreEqual("Jorge", employeeDto.Name);

            //Assert.AreEqual(managerDto.Id, employeeDto.SupervisorId);

            //employeeDto = employeeDtos.ElementAt(1);

            //Assert.AreEqual("Moshe", employeeDto.Name);

            //Assert.AreEqual(managerDto.Id, employeeDto.SupervisorId);

            //employeeDto = employeeDtos.ElementAt(2);

            //Assert.AreEqual("Daphni", employeeDto.Name);

            //Assert.AreEqual(managerDto.Id, employeeDto.SupervisorId);

            // Delete
            //var deleteAggregate = new DeleteManagerCommandAggregate(new DeleteManagerInputDto
            //{
            //    Id = managerId.Value
            //});

            //deleteAggregate.Save();

            //managerDto = queryAggregate.Get(managerId);

            //Assert.IsNull(managerDto);
        }