public async void GetDocumentsFromSearch50_3NoDocumentsFound()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsFromSearch("test", 50, 3);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public async void GetDocumentUpdatestWithIncorrectDocumentId()
        {
            using (var context = DbTestContext.GenerateEmptyContext())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentUpdates(999);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public async void GetDocumentsFromSearchFuzzySearchNoDocumentsFound()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsFromSearch("mihailo", 100, 1, false);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public async void GetDocumentsByProductVersion1_10_2EmptyPage()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsByProductVersion(1, 10, 2);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public async void GetDocumentsByProduct1_50_2NotFound()
        {
            using (var context = DbTestContext.GenerateEmptyContext())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsByProduct(1, 50, 2);

                    Assert.IsType <NotFoundResult>(result);
                }
        }
        public async void GetDocumentUpdatesBadModel()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    controller.ModelState.AddModelError("an error", "some error");
                    var result = await controller.GetDocumentUpdates(1);

                    Assert.IsType <BadRequestObjectResult>(result);
                }
        }
        public async void GetDocumentUpdatesReturnsListOfUpdates()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentUpdates(4);

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

                    IEnumerable <DocumentUpdateDto> resultValueList = (IEnumerable <DocumentUpdateDto>)resultValue;
                    Assert.True(resultValueList.Count().Equals(10));
                }
        }
        public async void GetDocumentsFromSearchFuzzySearchReturnsMatches()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsFromSearch("Document Test", 150, 1, false);

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

                    IEnumerable <DocumentDtoInternal> resultValueList = (IEnumerable <DocumentDtoInternal>)resultValue;
                    Assert.True(resultValueList.Count().Equals(50));
                }
        }
        public async void GetDocumentByIdReturnsCorrectDocument()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocument(4);

                    DocumentDtoInternal d4 = GetTestDocumentDtoFromContext(4);

                    Assert.NotNull(result);
                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;
                    Assert.NotNull(resultValue);
                    Assert.IsAssignableFrom <DocumentDtoInternal>(resultValue);
                    DocumentDtoInternal d = (DocumentDtoInternal)resultValue;

                    Assert.True(d.Equals(d4));
                    Assert.True(d.Equals(d4, true));
                }
        }
        public async void GetDocumentsByTypeReturnsListOfDocuments()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentsByType(1);

                    DocumentDtoInternal d4 = GetTestDocumentDtoFromContext(4);

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

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

                    DocumentDtoInternal d = (DocumentDtoInternal)resultValueList.Single(r => r.Id == 4);
                    Assert.True(d.Equals(d4));
                    Assert.True(d.Equals(d4, true));
                }
        }