예제 #1
0
        public static void UpdateDomainModel(this CreativeDto creativeDto, Creative creative)
        {
            ValidateUpdateOfDomainModel(creativeDto, creative);

            creative.Name         = creativeDto.Name;
            creative.AdvertiserId = creativeDto.AdvertiserId;
        }
예제 #2
0
        public void UpdateCreative(CreativeDto creativeDto)
        {
            Creative creative = _unitOfWork.Repository.SearchById(creativeDto.Id);

            creativeDto.UpdateDomainModel(creative);
            _unitOfWork.Repository.Update(creative);
            _unitOfWork.Save();
        }
예제 #3
0
        public void Then_Update_Succeeds_For_A_Valid_Creative()
        {
            CreativeDto dto = new CreativeDto {
                AdvertiserId = 1, Id = 100, Name = "Creative Update Name"
            };

            _creativeService.UpdateCreative(dto);

            _creativeRepository.Verify(r => r.Update(It.IsAny <Creative>()), Times.Once);
        }
예제 #4
0
        public Creative CreateCreative(CreativeDto creativeDto)
        {
            Creative creative = creativeDto.ConvertToDomainModel();

            ValidateForCreation(creative);

            _unitOfWork.Repository.Add(creative);
            _unitOfWork.Save();

            return(creative);
        }
예제 #5
0
        public void Then_A_Name_Collision_Within_The_Advertiser_Will_Cause_A_DomainException()
        {
            CreativeDto _dto = new CreativeDto
            {
                AdvertiserId = 1,
                Name         = "Creative1"
            };

            _creativeService.CreateCreative(_dto);

            _creativeRepository.Verify(r => r.Add(It.IsAny <Creative>()), Times.Never);
        }
예제 #6
0
        public static Creative ConvertToDomainModel(this CreativeDto creativeDto)
        {
            var creative = new Creative(new PersistCreative()
            {
                Active       = true,
                CreativeId   = creativeDto.Id,
                CreativeName = creativeDto.Name,
                AdvertiserId = creativeDto.AdvertiserId,
            });

            return(creative);
        }
예제 #7
0
        public void Then_Updating_A_NonExistent_Creative_Will_Cause_A_DomainException()
        {
            _searchByIdReturnsResult = false;
            Initialize();

            CreativeDto dto = new CreativeDto {
                AdvertiserId = 1, Id = 100, Name = "Creative Update Name"
            };

            _creativeService.UpdateCreative(dto);

            _creativeRepository.Verify(r => r.Update(It.IsAny <Creative>()), Times.Never);
        }
예제 #8
0
        public void Can_Convert_CreativeDomainModel_To_CreativeDto()
        {
            // ARRANGE
            Creative domainModel = CreativeFactory.CreateCreativeDomainObject();

            // ACT
            CreativeDto dto = domainModel.ConvertToDto();

            // ASSERT
            Assert.AreEqual(domainModel.Id, dto.Id);
            Assert.AreEqual(domainModel.Name, dto.Name);
            Assert.AreEqual(domainModel.Panels.Count, dto.CreativePanels.Count);
        }
예제 #9
0
        private static void ValidateUpdateOfDomainModel(CreativeDto creativeDto, Creative creative)
        {
            if (creativeDto == null)
            {
                throw new DomainException("Unable to update Creative from null CreativeDto.");
            }

            if (creative == null)
            {
                throw new DomainException("Unable to update null Creative from CreativeDto.");
            }

            if (creative.Id != creativeDto.Id)
            {
                throw new DomainException("Unable to update Creative since Id values do not match.");
            }
        }
예제 #10
0
        public async Task <IHttpActionResult> Put(CreativeDto creativeRequest)
        {
            _creativesFacade.UpdateCreative(creativeRequest);

            return(NoContent());
        }
예제 #11
0
        public async Task <IHttpActionResult> Post(CreativeDto creativeRequest)
        {
            Creative newCreative = _creativesFacade.CreateCreative(creativeRequest);

            return(Created <Creative>(Url.Content(Url.Route(CreativeRoute.CREATE, new { creativeId = newCreative.Id })), newCreative));
        }
예제 #12
0
 public void Initialize()
 {
     _creative    = CreativeFactory.CreateCreativeDomainObjectWithPanels();
     _creativeDto = CreativeFactory.CreateCreativeDtoObject();
     AutoMapperConfig.MapTypes();
 }