public async void DeleteDocumentTypeWithIncorrectIdReturnsNotFound()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    var result = await controller.DeleteDocumentType(99);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public void GetDocumentTypesEmptyContextNotFound()
        {
            using (var context = DbTestContext.GenerateEmptyContext())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    var result = controller.GetDocumentTypes();

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public DocumentTypesControllerTests()
        {
            var mockingEntities = new MockingEntities <DocumentType,
                                                       DocumentTypesController,
                                                       IDocumentTypesService>();

            mock               = mockingEntities.Mock;
            validController    = mockingEntities.ValidController;
            notValidController = mockingEntities.NotValidController;
            entity             = mockingEntities.singleEntity;
        }
        public async void DeleteDocumentTypeModelStateErrorReturnsBadRequest()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    controller.ModelState.AddModelError("an error", "some error");

                    var result = await controller.DeleteDocumentType(1);

                    Assert.IsType <BadRequestObjectResult>(result);
                }
        }
        public async void PostDocumentTypeCorrectDataCreatesDocumentType()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    DocumentTypeDto p11 = GetTestDocumentTypeDto(11);

                    var result = await controller.PostDocumentType(p11);

                    Assert.NotNull(result);
                    var resultValue = Assert.IsType <CreatedAtActionResult>(result);
                }
        }
        public async void DeleteDocumentTypeIdDeletesDocumentType()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    var result = await controller.DeleteDocumentType(3);

                    DocumentTypeDto p3 = GetTestDocumentTypeDto(3);

                    Assert.NotNull(result);
                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;
                    Assert.Equal(p3, resultValue);
                }
        }
        public async void GetDocumentTypeByIdReturnsSingleDocumentType()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    var result = await controller.GetDocumentType(3);

                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;

                    DocumentTypeDto p3 = GetTestDocumentTypeDto(3);

                    Assert.NotNull(resultValue);
                    Assert.IsType <DocumentTypeDto>(resultValue);
                    DocumentTypeDto p = (DocumentTypeDto)resultValue;
                    Assert.True(p.Equals(p3));
                    Assert.True(p.Equals(p3, true));
                }
        }
        public void GetDocumentTypesReturnsListOfDocumentTypes()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentTypesController(context, _mapper))
                {
                    var             result = controller.GetDocumentTypes();
                    DocumentTypeDto p3     = GetTestDocumentTypeDto(3);

                    Assert.NotNull(result);

                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;
                    Assert.IsAssignableFrom <IEnumerable <DocumentTypeDto> >(resultValue);
                    Assert.NotEmpty((IEnumerable <DocumentTypeDto>)resultValue);

                    IEnumerable <DocumentTypeDto> resultValueList = (IEnumerable <DocumentTypeDto>)resultValue;

                    Assert.Equal(10, resultValueList.Count());
                    DocumentTypeDto p = (DocumentTypeDto)resultValueList.Where(r => r.Id == 3).FirstOrDefault();
                    Assert.True(p.Equals(p3));
                    Assert.True(p.Equals(p3, true));
                }
        }