public void ShouldThrowArgumentExceptionIfEmployeeOrManagerNotFound()
        {
            var context = InitAndGetDbContext();
            var command = new ChangeEmployeeReportsToCommand(context);

            var managerId = 3;

            command.Execute(new EmployeeUnderManagerModel
            {
                EmployeeId = 1,
                ManagerId  = managerId
            });
        }
        public void ShouldThrowArgumentExceptionIfEmployeeAndManagerIdSame()
        {
            //Prepare
            var context = InitAndGetDbContext();
            var command = new ChangeEmployeeReportsToCommand(context);

            //execute
            int managerId = 1;

            command.Execute(new EmployeeUnderManagerModel
            {
                EmployeeId = 1,
                ManagerId  = managerId
            });
        }
        public void ShouldMoveEmployeeUnderManager()
        {
            //Prepare
            var context = InitAndGetDbContext();
            var command = new ChangeEmployeeReportsToCommand(context);

            //execute
            int managerId = 2;

            command.Execute(new EmployeeUnderManagerModel
            {
                EmployeeId = 1,
                ManagerId  = managerId
            });

            var result = context.Employees.Where(e => (e.EmployeeId == 1 && e.ReportsTo == managerId));

            Assert.AreEqual(result.Count(), 1);
        }