예제 #1
0
        public async void ExecuteWithDuplicateAspectStatesTest()
        {
            //Arrange
            var newAspectState  = new Domain.AspectStates.AspectStates(1, "name1", "colour1", true);
            var newAspectState2 = new Domain.AspectStates.AspectStates(2, "name1", "colour1", true);
            AspectStatesOutput aspectStateOutput1 = new AspectStatesOutput();

            aspectStateOutput1.ID     = 1;
            aspectStateOutput1.Name   = "Estado1";
            aspectStateOutput1.Active = true;
            aspectStateOutput1.Colour = "colour1";
            var mockAspectStatesRepository = new Mock <IAspectStatesRepository>();

            mockAspectStatesRepository.Setup(e => e.CheckExistsAspectState(It.IsNotNull <string>(), It.IsNotNull <string>(), It.IsNotNull <int>())).Returns(newAspectState);
            mockAspectStatesRepository.Setup(e => e.GetOne(It.IsNotNull <int>())).Returns(newAspectState2);

            var mockMapper = new Mock <IMapper>();

            UpdateAspectStatusUseCase useCase = new UpdateAspectStatusUseCase(mockMapper.Object, mockAspectStatesRepository.Object);

            //Act


            //Assert
            Assert.Throws <DuplicateEntityException>(() => useCase.Execute(1, "name1", "colour1", true));
        }
예제 #2
0
        public void AddDuplicateAspectStateTest()
        {
            //Arrange
            var newAspectState = new Domain.AspectStates.AspectStates("name1", "colour1", true);
            AspectStatesOutput aspectStateOutput1 = new AspectStatesOutput();

            aspectStateOutput1.ID     = 1;
            aspectStateOutput1.Name   = "Estado1";
            aspectStateOutput1.Active = true;
            aspectStateOutput1.Colour = "colour1";
            var mockAspectStatesRepository = new Mock <IAspectStatesRepository>();

            mockAspectStatesRepository.Setup(e => e.Get(It.IsNotNull <string>(), It.IsNotNull <string>())).Returns(newAspectState);
            mockAspectStatesRepository.Setup(e => e.Add(It.IsNotNull <Domain.AspectStates.AspectStates>())).Returns(newAspectState);
            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(e => e.Map <Hoshin.Quality.Domain.AspectStates.AspectStates, AspectStatesOutput>(It.IsAny <Domain.AspectStates.AspectStates>())).Returns(aspectStateOutput1);
            CreateAspectStateUseCase useCase = new CreateAspectStateUseCase(mockMapper.Object, mockAspectStatesRepository.Object);

            //Act


            //Assert
            Assert.Throws <DuplicateEntityException>(() => useCase.Execute("name1", "colour1", true));
        }
예제 #3
0
        public async void ExecuteWithExistingAspectStatesTest()
        {
            //Arrange
            var newAspectState  = new Domain.AspectStates.AspectStates(1, "name1", "colour1", true);
            var newAspectState2 = new Domain.AspectStates.AspectStates(1, "name1", "colour1", true);
            AspectStatesOutput aspectStateOutput1 = new AspectStatesOutput();

            aspectStateOutput1.ID     = 1;
            aspectStateOutput1.Name   = "Estado1";
            aspectStateOutput1.Active = true;
            aspectStateOutput1.Colour = "colour1";
            var mockAspectStatesRepository = new Mock <IAspectStatesRepository>();

            mockAspectStatesRepository.Setup(e => e.Update(It.IsNotNull <Domain.AspectStates.AspectStates>())).Returns(newAspectState);
            mockAspectStatesRepository.Setup(e => e.Get(It.IsNotNull <string>(), It.IsNotNull <string>())).Returns(newAspectState);
            mockAspectStatesRepository.Setup(e => e.GetOne(It.IsNotNull <int>())).Returns(newAspectState2);
            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(e => e.Map <Hoshin.Quality.Domain.AspectStates.AspectStates, AspectStatesOutput>(It.IsAny <Domain.AspectStates.AspectStates>())).Returns(aspectStateOutput1);
            UpdateAspectStatusUseCase useCase = new UpdateAspectStatusUseCase(mockMapper.Object, mockAspectStatesRepository.Object);

            //Act
            var res = useCase.Execute(1, "name1", "colour1", true);

            //Assert
            Assert.IsType <AspectStatesOutput>(res);
        }
        public AspectStatesOutput Execute(int id, string name, string colour, bool active)
        {
            var aspectStatusDomain = _aspectStatesRepository.GetOne(id);

            if (aspectStatusDomain != null)
            {
                if (_aspectStatesRepository.CheckExistsAspectState(name, colour, id) == null)
                {
                    var aspectStatus = new Domain.AspectStates.AspectStates(id, name, colour, active);
                    aspectStatusDomain = _aspectStatesRepository.Update(aspectStatus);
                    return(_mapper.Map <Domain.AspectStates.AspectStates, AspectStatesOutput>(aspectStatusDomain));
                }
                throw new DuplicateEntityException(name, "Ya existe un estado de aspecto con este nombre o color");
            }
            throw new EntityNotFoundException(id, "No se encontró un estado de aspecto con ese ID");
        }