public async Task UpdateShouldSucceed()
        {
            // Arrange
            var id   = Guid.NewGuid();
            var name = "name";
            var nameOnApplication = "nameOnApplication";
            var description       = "description";
            var instruction       = "instruction";
            var icon = new BuildingBlockIcon(Guid.NewGuid());

            var validation = RepositoryHelper.ForValidation.CreateValidation(id, name, nameOnApplication, description, instruction, icon);

            var image = new Image("image", "url");

            validation.AddImage(image);

            // Act
            await _repository.UpdateAsync(validation);

            // Assert
            var data = RepositoryHelper.ForValidation.GetValidations();

            data.Should().HaveCount(1);
            var result = data.First();

            result.Should().NotBeNull();
            result.Images.Should().HaveCount(1);
            result.Images.First().Should().Be(image);
        }
        public async Task HandleShouldReturnOk()
        {
            // Arrange
            var    id   = Guid.NewGuid();
            string name = "name";
            string nameOnApplication = "nameOnApplication";
            string description       = "description";
            string instruction       = "instruction";
            var    icon = new BuildingBlockIcon(Guid.NewGuid());

            var validationReadRepositoryMock = new Mock <IValidationReadRepository>();

            validationReadRepositoryMock.Setup(x => x.GetAsync(id)).Returns(Task.FromResult(new Validation(id, name, nameOnApplication, description, instruction, icon)));
            var validationReadRepository = validationReadRepositoryMock.Object;

            var mapperMock = new Mock <IMapper>();

            mapperMock.Setup(x => x.Map <ValidationModel>(It.IsAny <object>())).Returns(new ValidationModel());
            var mapper = mapperMock.Object;

            var query = new GetValidationQuery(id);

            var handler = new GetValidationQueryHandler(mapper, validationReadRepository);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.IsFailure.Should().BeFalse();
            result.Should().BeOfType(typeof(Result <ValidationModel>));
        }
Exemplo n.º 3
0
        public async Task ListShouldReturnAllRecords()
        {
            // Arrange
            var icon = new BuildingBlockIcon(Guid.NewGuid());

            RepositoryHelper.ForValidation.CreateValidation(Guid.NewGuid(), "name-1", "nameOnApplication", "description", "instruction", icon);
            RepositoryHelper.ForValidation.CreateValidation(Guid.NewGuid(), "name-2", "nameOnApplication", "description", "instruction", icon);
            RepositoryHelper.ForValidation.CreateValidation(Guid.NewGuid(), "name-3", "nameOnApplication", "description", "instruction", icon);

            // Act
            var result = await _repository.ListAsync(null, null, null);

            // Assert
            result.Should().HaveCount(3);
        }
Exemplo n.º 4
0
        public async Task GetByIdShouldSucceed()
        {
            // Arrange
            var id   = Guid.NewGuid();
            var name = "License plate check on truck";
            var nameOnApplication = "IdCheck";
            var description       = "Description";
            var instruction       = "Keep";
            var icon = new BuildingBlockIcon(Guid.NewGuid());

            RepositoryHelper.ForValidation.CreateValidation(id, name, nameOnApplication, description, instruction, icon);

            // Act
            var result = await _repository.GetAsync(id);

            // Assert
            result.Should().NotBeNull();
        }
        public async Task <Result> Handle(CreateValidationCommand request, CancellationToken cancellationToken)
        {
            var id   = _identifierProvider.Generate();
            var tags = new List <Tag>();

            foreach (var tag in request.Tags)
            {
                tags.Add(new Tag(tag));
            }
            var images = new List <Image>();

            foreach (var image in request.Images)
            {
                images.Add(new Image(image.Name, "some image url"));
            }
            var videos = new List <Video>();

            foreach (var video in request.Videos)
            {
                videos.Add(new Video(video.Name, "some image url"));
            }

            var icon = new BuildingBlockIcon(request.Icon.Id);


            var validationBlockToCreate = new Validation(id,
                                                         request.Name,
                                                         request.NameOnApplication,
                                                         request.Description,
                                                         request.Instruction,
                                                         icon);

            foreach (var tag in tags)
            {
                validationBlockToCreate.AddTag(tag);
            }
            foreach (var image in images)
            {
                validationBlockToCreate.AddImage(image);
            }
            foreach (var video in videos)
            {
                validationBlockToCreate.AddVideo(video);
            }

            validationBlockToCreate.Version = _versionProvider.Generate();

            Result result;

            try
            {
                await _validationWriteRepository.CreateAsync(validationBlockToCreate);

                result = Result.Ok(id, validationBlockToCreate.Version);
            }
            catch (UniqueKeyException)
            {
                result = Result.Fail(new System.Collections.Generic.List <Failure>()
                {
                    new HandlerFault()
                    {
                        Code    = HandlerFaultCode.Conflict.Name,
                        Message = HandlerFailures.Conflict,
                        Target  = "name"
                    }
                }
                                     );
            }
            catch
            {
                result = Result.Fail(CustomFailures.CreateValidationFailure);
            }

            return(result);
        }
Exemplo n.º 6
0
            public static Validation CreateValidation(Guid id, string name, string nameOnApplication, string description, string instruction, BuildingBlockIcon icon)
            {
                // prepare
                var writeRepository = new ValidationWriteRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString)));
                var readRepository  = new ValidationReadRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString)));

                // create
                var validation = new Validation(id, name, nameOnApplication, description, instruction, icon);

                writeRepository.CreateAsync(validation).GetAwaiter().GetResult();

                // result
                var result = readRepository.GetAsync(id).Result;

                return(result);
            }