public void Should_Error_Get_Data_By_Id()
        {
            var mockFacade = new Mock <ExpeditionFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new Expedition());

            var mockMapper = new Mock <IMapper>();

            ExpeditionController controller = new ExpeditionController(mockMapper.Object, mockFacade.Object, GetServiceProvider().Object);
            var response = controller.Get(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_Get_Data_By_Id()
        {
            var mockFacade = new Mock <ExpeditionFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new Expedition());

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <ExpeditionViewModel>(It.IsAny <Expedition>()))
            .Returns(expviewModel);

            ExpeditionController controller = new ExpeditionController(mockMapper.Object, mockFacade.Object, GetServiceProvider().Object);
            var response = controller.Get(It.IsAny <int>());

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        public async Task Should_Error_Create_Data()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <ExpeditionViewModel>())).Verifiable();

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <Expedition>(It.IsAny <ExpeditionViewModel>()))
            .Returns(Model);

            var mockFacade = new Mock <ExpeditionFacade>();

            mockFacade.Setup(x => x.Create(It.IsAny <Expedition>(), "unittestusername", 7))
            .ReturnsAsync(1);

            var controller = new ExpeditionController(mockMapper.Object, mockFacade.Object, GetServiceProvider().Object);

            var response = await controller.Post(this.expviewModel);

            Assert.Equal((int)HttpStatusCode.InternalServerError, GetStatusCode(response));
        }
        public void Should_Success_Get_All_Data()
        {
            var validateMock = new Mock <IValidateService>();

            validateMock.Setup(s => s.Validate(It.IsAny <ExpeditionViewModel>())).Verifiable();

            var mockFacade = new Mock <ExpeditionFacade>();


            mockFacade.Setup(x => x.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), null, It.IsAny <string>()))
            .Returns(Tuple.Create(new List <Expedition>(), 0, new Dictionary <string, string>()));

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <List <ExpeditionViewModel> >(It.IsAny <List <Expedition> >()))
            .Returns(new List <ExpeditionViewModel> {
                expviewModel
            });

            ExpeditionController controller = GetController(mockFacade, validateMock, mockMapper);
            var response = controller.Get();

            Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(response));
        }
        private ExpeditionController GetController(Mock <ExpeditionFacade> facadeM, Mock <IValidateService> validateM, Mock <IMapper> mapper)
        {
            var user   = new Mock <ClaimsPrincipal>();
            var claims = new Claim[]
            {
                new Claim("username", "unittestusername")
            };

            user.Setup(u => u.Claims).Returns(claims);

            var servicePMock = GetServiceProvider();

            if (validateM != null)
            {
                servicePMock
                .Setup(x => x.GetService(typeof(IValidateService)))
                .Returns(validateM.Object);
            }

            ExpeditionController controller = new ExpeditionController(mapper.Object, facadeM.Object, servicePMock.Object)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = user.Object
                    }
                }
            };

            controller.ControllerContext.HttpContext.Request.Headers["Authorization"] = "Bearer unittesttoken";
            controller.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test");
            controller.ControllerContext.HttpContext.Request.Headers["x-timezone-offset"] = "7";

            return(controller);
        }