private void UpdateEnvironment(Domain.Entities.Environment environmentEntity, UpdateEnvironmentDto environment)
 {
     environmentEntity.Name        = environment.Name;
     environmentEntity.Description = environment.Description;
     environmentEntity.IsActive    = environment.IsActive;
     environmentEntity.Url         = environment.Url;
     _context.Environments.Update(environmentEntity);
 }
Exemplo n.º 2
0
        public async Task Put_WhenCalled_ReturnsOkResult()
        {
            var mockedRepo  = new Mock <IHomeRepository>();
            var environment = new Environment()
            {
                Id = Guid.Parse("00000000-0000-0000-0000-000000000000")
            };

            mockedRepo.Setup(repo => repo.EditEnvironment(environment)).ReturnsAsync(true);
            var controller = new EnvironmentsController(mockedRepo.Object);
            var result     = await controller.Put(environment);

            var contentResult = (result as OkObjectResult).Value;

            Assert.NotNull(contentResult);
            Assert.Equal(contentResult, environment);
        }
        public async Task <Unit> Handle(CreateEnvironmentCommand command, CancellationToken cancellationToken)
        {
            await Validate(command);

            var entity = new Domain.Entities.Environment
            {
                Name          = command.Request.Name,
                Url           = command.Request.Url,
                Description   = command.Request.Description,
                ApplicationId = command.Request.ApplicationId,
                IsActive      = command.Request.IsActive
            };

            _spiderDbContext.Environments.Add(entity);
            await _spiderDbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
        public async Task UpdateEnvironmentCommandHandler_Handle_ShouldUpdateTheEnvironmentById()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name          = "Dev",
                ApplicationId = applicationId,
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Local",
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3"),
                IsActive      = true
            });
            await _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None);

            var actualEnvironmentEntity =
                Context.Environments.FirstOrDefault(e =>
                                                    e.Id == Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3"));

            Assert.Equal("Local", actualEnvironmentEntity?.Name);
        }
Exemplo n.º 5
0
        public async Task Delete_WhenCalled_UnknownObject_ReturnsNotFound()
        {
            var mockedRepo = new Mock <IHomeRepository>();

            var controller = new EnvironmentsController(mockedRepo.Object);

            var newEnv = new Environment()
            {
                Id = Guid.Parse("00000000-0000-0000-0000-000000000003")
            };

            mockedRepo.Setup(repo => repo.GetEnvironment(Guid.Parse("00000000-0000-0000-0000-000000000002"))).ReturnsAsync((Environment)null);

            var result = await controller.Delete("00000000-0000-0000-0000-000000000002");

            var contentResult = result as NotFoundResult;

            Assert.NotNull(contentResult);
        }
Exemplo n.º 6
0
        public async Task Put_WhenCalled_BadObject_ReturnsBadRequest()
        {
            var mockedRepo = new Mock <IHomeRepository>();

            var controller = new EnvironmentsController(mockedRepo.Object);

            var newEnv = new Environment()
            {
                Id = Guid.Parse("00000000-0000-0000-0000-000000000003")
            };

            mockedRepo.Setup(repo => repo.EditEnvironment(newEnv)).ReturnsAsync(false);

            var result = await controller.Put(newEnv);

            var contentResult = result as BadRequestResult;

            Assert.NotNull(contentResult);
        }
Exemplo n.º 7
0
        public async Task Delete_WhenCalled_DeleteFailed_ReturnsServerError()
        {
            var mockedRepo = new Mock <IHomeRepository>();

            var controller = new EnvironmentsController(mockedRepo.Object);

            var newEnv = new Environment()
            {
                Id = Guid.Parse("00000000-0000-0000-0000-000000000003")
            };

            mockedRepo.Setup(repo => repo.GetEnvironment(Guid.Parse("00000000-0000-0000-0000-000000000003"))).ReturnsAsync(newEnv);
            mockedRepo.Setup(repo => repo.DeleteEnvironment(Guid.Parse("00000000-0000-0000-0000-000000000003"))).ReturnsAsync(false);

            var result = await controller.Delete("00000000-0000-0000-0000-000000000003");

            var contentResult = result as StatusCodeResult;

            Assert.NotNull(contentResult);
            Assert.Equal(StatusCodes.Status500InternalServerError, contentResult.StatusCode);
        }
Exemplo n.º 8
0
        public async Task Delete_WhenCalled_ReturnsOk()
        {
            var mockedRepo = new Mock <IHomeRepository>();

            var controller = new EnvironmentsController(mockedRepo.Object);

            var newEnv = new Environment()
            {
                Id = Guid.Parse("00000000-0000-0000-0000-000000000003")
            };

            mockedRepo.Setup(repo => repo.GetEnvironment(Guid.Parse("00000000-0000-0000-0000-000000000003"))).ReturnsAsync(newEnv);
            mockedRepo.Setup(repo => repo.DeleteEnvironment(Guid.Parse("00000000-0000-0000-0000-000000000003"))).ReturnsAsync(true);

            var result = await controller.Delete("00000000-0000-0000-0000-000000000003");

            var contentResult = (result as OkObjectResult).Value;

            Assert.NotNull(contentResult);
            Assert.Equal(newEnv, contentResult);
        }
        public async Task UpdateEnvironmentCommandHandler_Handle_ShouldThrowExceptionIfRecordNotFound()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name          = "Dev",
                ApplicationId = applicationId,
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Local",
                Id            = Guid.Parse("4843AC32-47F9-464F-9A2C-8716AD22F9D3")
            });
            await Assert.ThrowsAsync <NotFoundException>(() =>
                                                         _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None));
        }
        UpdateEnvironmentCommandHandler_Handle_ShouldThrowExceptionIfEnvironmentNameAlreadyExistsInApplication()
        {
            var applicationId = Guid.NewGuid();
            var application   = new Domain.Entities.Application
            {
                Id   = applicationId,
                Name = "App"
            };

            Context.Applications.Add(application);
            var env = new Domain.Entities.Environment
            {
                Name          = "Prod",
                ApplicationId = applicationId,
                Id            = Guid.Parse("8B20CDFD-204C-4610-8E6F-B3861457152E")
            };

            Context.Environments.Add(env);

            env = new Domain.Entities.Environment
            {
                Name = "Dev", ApplicationId = applicationId,
                Id   = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            };
            Context.Environments.Add(env);
            await Context.SaveChangesAsync(CancellationToken.None);

            var command = new UpdateEnvironmentCommand(new UpdateEnvironmentDto
            {
                ApplicationId = applicationId,
                Name          = "Prod",
                Id            = Guid.Parse("65A0F7EB-A040-42ED-800A-4F853B2A94F3")
            });
            await Assert.ThrowsAsync <RecordAlreadyExistsException>(() =>
                                                                    _updateEnvironmentCommandHandler.Handle(command, CancellationToken.None));
        }