Ejemplo n.º 1
0
        public async Task <ActionResult <ActorDomainModel> > AddActor([FromBody] ActorModel actorModel)
        {
            ActorDomainModel domainModel = new ActorDomainModel
            {
                FirstName = actorModel.FirstName,
                LastName  = actorModel.LastName
            };

            ActorDomainModel createActor;

            try
            {
                createActor = await _actorService.AddActor(domainModel);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            if (createActor == null)
            {
                return(BadRequest(Messages.ACTOR_CREATION_ERROR));
            }

            return(CreatedAtAction(nameof(GetActorById), new { Id = createActor.Id }, createActor));
        }
        public void GetAsync_Return_All_Actors()
        {
            //Arrange
            ActorDomainModel actorDomainModel = new ActorDomainModel
            {
                Id        = Guid.NewGuid(),
                FirstName = "milan",
                LastName  = "petrovic"
            };
            int expectedStatusCode  = 200;
            int expectedResultCount = 1;

            List <ActorDomainModel> actorDomainModels = new List <ActorDomainModel>();

            actorDomainModels.Add(actorDomainModel);

            IEnumerable <ActorDomainModel>         actorsIEn    = actorDomainModels;
            Task <IEnumerable <ActorDomainModel> > responseTask = Task.FromResult(actorsIEn);

            _actorService = new Mock <IActorService>();
            _actorService.Setup(x => x.GetAllAsync()).Returns(responseTask);
            ActorsController actorsController = new ActorsController(_actorService.Object);

            //Act
            var result     = actorsController.GetAsync().ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultList = ((OkObjectResult)result).Value;
            List <ActorDomainModel> actorDomainModelsResult = (List <ActorDomainModel>)resultList;

            //Assert
            Assert.IsNotNull(actorDomainModelsResult);
            Assert.AreEqual(expectedResultCount, actorDomainModelsResult.Count);
            Assert.AreEqual(actorDomainModel.Id, actorDomainModelsResult[0].Id);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode);
        }
        public void GetByIdAsync_Return_Actor_OkObjectResult()
        {
            //Arrange
            ActorDomainModel actorDomainModel = new ActorDomainModel
            {
                Id        = Guid.NewGuid(),
                FirstName = "milan",
                LastName  = "petrovic"
            };
            int expectedStatusCode = 200;

            Task <ActorDomainModel> responseTask = Task.FromResult(actorDomainModel);

            _actorService = new Mock <IActorService>();
            _actorService.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).Returns(responseTask);
            ActorsController actorsController = new ActorsController(_actorService.Object);

            //Act
            var result     = actorsController.GetById(actorDomainModel.Id).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultList = ((OkObjectResult)result).Value;
            ActorDomainModel actorDomainModelsResult = (ActorDomainModel)resultList;

            //Assert
            Assert.IsNotNull(actorDomainModelsResult);
            Assert.AreEqual(actorDomainModel.FirstName, actorDomainModelsResult.FirstName);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode);
        }
        public void CreateActorAsync_Create_IsSuccessful_True_Actor()
        {
            // Arrange
            int expectedStatusCode = 201;

            ActorModel actorModel = new ActorModel()
            {
                FirstName = "Ime",
                LastName  = "Prezime"
            };

            ActorDomainModel actorDomainModel = new ActorDomainModel
            {
                Id        = 1,
                FirstName = actorModel.FirstName,
                LastName  = actorModel.LastName
            };

            Task <ActorDomainModel> responseTask = Task.FromResult(actorDomainModel);

            _actorService = new Mock <IActorService>();
            _actorService.Setup(x => x.AddActor(It.IsAny <ActorDomainModel>())).Returns(responseTask);
            ActorsController actorsController = new ActorsController(_actorService.Object);

            // Act
            var result            = actorsController.AddActor(actorModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var createdResult     = ((CreatedAtActionResult)result).Value;
            var actorDomainModel1 = (ActorDomainModel)createdResult;

            // Assert
            Assert.IsNotNull(actorDomainModel1);
            Assert.AreEqual(actorModel.FirstName, actorDomainModel1.FirstName);
            Assert.IsInstanceOfType(result, typeof(CreatedAtActionResult));
            Assert.AreEqual(expectedStatusCode, ((CreatedAtActionResult)result).StatusCode);
        }
Ejemplo n.º 5
0
        public async Task <ActorDomainModel> AddActor(ActorDomainModel actorModel)
        {
            // get all actors
            var actors = await _actorsRepository.GetAllAsync();

            // check if there is actor with same first name and last name
            foreach (var actor in actors)
            {
                if (actor.FirstName == actorModel.FirstName && actor.LastName == actorModel.LastName)
                {
                    return(null);
                }
            }

            Actor actorToAdd = new Actor
            {
                FirstName = actorModel.FirstName,
                LastName  = actorModel.LastName
            };

            var addedActor = _actorsRepository.Insert(actorToAdd);

            _actorsRepository.Save();

            ActorDomainModel actorDomainModel = new ActorDomainModel
            {
                Id        = addedActor.Id,
                FirstName = addedActor.FirstName,
                LastName  = addedActor.LastName
            };

            return(actorDomainModel);
        }
Ejemplo n.º 6
0
        public async Task <ActionResult <ActorDomainModel> > GetById(Guid id)
        {
            ActorDomainModel actorDomainModel = await _actorService.GetByIdAsync(id);

            if (actorDomainModel == null)
            {
                return(NotFound(Messages.ACTOR_NOT_FOUND));
            }

            return(Ok(actorDomainModel));
        }
Ejemplo n.º 7
0
        public async Task <ActorDomainModel> GetByIdAsync(Guid id)
        {
            var actor = await _actorsRepository.GetByIdAsync(id);

            if (actor == null)
            {
                return(null);
            }

            ActorDomainModel actorModel = new ActorDomainModel
            {
                Id        = actor.Id,
                FirstName = actor.FirstName,
                LastName  = actor.LastName
            };

            return(actorModel);
        }
Ejemplo n.º 8
0
        public async Task <IEnumerable <ActorDomainModel> > GetAllAsync()
        {
            var actors = await _actorsRepository.GetAll();

            List <ActorDomainModel> actorList = new List <ActorDomainModel>();

            foreach (var actor in actors)
            {
                ActorDomainModel actorModel = new ActorDomainModel
                {
                    Id        = actor.Id,
                    FirstName = actor.FirstName,
                    LastName  = actor.LastName
                };

                actorList.Add(actorModel);
            }

            return(actorList);
        }
        public void CreateActorAsync_Create_Throw_DbException_Actor()
        {
            // Arrange
            string expectedMessage    = "Inner exception error message.";
            int    expectedStatusCode = 400;

            ActorModel actorModel = new ActorModel()
            {
                FirstName = "Ime",
                LastName  = "Prezime"
            };

            ActorDomainModel actorDomainModel = new ActorDomainModel
            {
                Id        = 1,
                FirstName = actorModel.FirstName,
                LastName  = actorModel.LastName
            };

            Task <ActorDomainModel> responseTask = Task.FromResult(actorDomainModel);
            Exception         exception          = new Exception("Inner exception error message.");
            DbUpdateException dbUpdateException  = new DbUpdateException("Error.", exception);

            _actorService = new Mock <IActorService>();
            _actorService.Setup(x => x.AddActor(It.IsAny <ActorDomainModel>())).Throws(dbUpdateException);
            ActorsController actorsController = new ActorsController(_actorService.Object);

            // Act
            var result          = actorsController.AddActor(actorModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultResponse  = (BadRequestObjectResult)result;
            var badObjectResult = ((BadRequestObjectResult)result).Value;
            var errorResult     = (ErrorResponseModel)badObjectResult;

            // Assert
            Assert.IsNotNull(resultResponse);
            Assert.AreEqual(expectedMessage, errorResult.ErrorMessage);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, resultResponse.StatusCode);
        }
        public void GetByIdAsync_Return_Not_Found()
        {
            //Arrange
            ActorDomainModel actorDomainModel = null;
            int    expectedStatusCode         = 404;
            string expectedMessage            = Messages.ACTOR_NOT_FOUND;

            Task <ActorDomainModel> responseTask = Task.FromResult(actorDomainModel);

            _actorService = new Mock <IActorService>();
            _actorService.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).Returns(responseTask);
            ActorsController actorsController = new ActorsController(_actorService.Object);

            //Act
            var    result     = actorsController.GetById(Guid.NewGuid()).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var    resultList = ((NotFoundObjectResult)result).Value;
            string actorDomainModelsResult = (string)resultList;

            //Assert
            Assert.IsNotNull(actorDomainModelsResult);
            Assert.IsInstanceOfType(result, typeof(NotFoundObjectResult));
            Assert.AreEqual(expectedStatusCode, ((NotFoundObjectResult)result).StatusCode);
            Assert.AreEqual(expectedMessage, actorDomainModelsResult);
        }