public void GetWithInvalidIdShouldReturnNotFoundResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var result = controller.Get(TestConstants.DefaultNonExistingModelId);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
        }
        public void GetShouldReturnOkResultWithData()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var result = controller.Get();
            var actual = result as OkNegotiatedContentResult <List <CommentResponseModel> >;
            var expectedNumberOfObjects = TestConstants.DefaultPageSize;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedNumberOfObjects, actual.Content.Count);
        }
        public void GetWithValidIdShouldReturnOkResultWithData()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var id     = 0;
            var result = controller.Get(id);
            var actual = result as OkNegotiatedContentResult <CommentResponseModel>;

            Assert.IsNotNull(result);
            Assert.AreEqual(id, actual.Content.Id);
        }
示例#4
0
        public void GetWithProvidedValidIdShouldReturnOkResultWithData()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            var result = controller.Get(1);

            var expectedCount = 1;
            var actual        = result as OkNegotiatedContentResult <List <AlbumResponseModel> >;

            Assert.IsNotNull(actual);
            Assert.AreEqual(expectedCount, actual.Content.Count);
        }
示例#5
0
        public void GetShouldReturnOkResultWithData()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            var result = controller.Get();

            var expected = TestConstants.DefaultPageSize;
            var actual   = result as OkNegotiatedContentResult <List <PhotoResponseModel> >;

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual.Content.Count);
        }
示例#6
0
        public void PostWithFakeAccountShouldReturnUnauthorisedResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(
                this.albums, this.users, this.photos, false);

            var albumToBeAdded = new AlbumRequestModel()
            {
                Title = TestConstants.ValidTitle
            };
            var result = controller.Post(albumToBeAdded);

            Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
        }
示例#7
0
        public void GetWithIdShouldReturnOkResultWithData()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            var result = controller.Get(0);

            var actual        = result as OkNegotiatedContentResult <PhotoResponseModel>;
            var expectedTitle = TestConstants.ValidTitle;


            Assert.IsNotNull(actual);
            Assert.AreEqual(expectedTitle, actual.Content.Title);
        }
示例#8
0
        public void PutWithInvalidUserShouldReturnUnauthorisedResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos, false);

            var correctedTitleAlbum = new AlbumRequestModel()
            {
                Title = TestConstants.ValidTitle
            };
            var result = controller.Put(1, correctedTitleAlbum);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
        }
示例#9
0
        public void PutWithBadAlbumIdShouldReturnNotFoundResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            var correctedTitleAlbum = new AlbumRequestModel()
            {
                Title = TestConstants.ValidTitle
            };
            var result = controller.Put(TestConstants.DefaultNonExistingModelId, correctedTitleAlbum);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
        }
示例#10
0
        public void DeleteWithInvalidIdShouldReturnNotFoundResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var result = controller.Delete(TestConstants.DefaultNonExistingModelId);
            var expectedNumberOfComments    = TestConstants.DefaultNumberOfModels;
            var expectedNumberOfSaveChanges = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            Assert.AreEqual(expectedNumberOfComments, this.comments.NumberOfModels);
            Assert.AreEqual(expectedNumberOfSaveChanges, this.comments.NumberOfSaves);
        }
示例#11
0
        public void DeleteWithInvalidUserShouldReturnUnauthorisedResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos, false);

            var result = controller.Delete(0);
            var expectedNumberOfComments    = TestConstants.DefaultNumberOfModels;
            var expectedNumberOfSaveChanges = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
            Assert.AreEqual(expectedNumberOfComments, this.comments.NumberOfModels);
            Assert.AreEqual(expectedNumberOfSaveChanges, this.comments.NumberOfSaves);
        }
示例#12
0
        public void DeleteWithWrongUserShouldReturnUnauthorisedResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(
                this.albums, this.users, this.photos, false);

            var result = controller.Delete(0);

            var expectedSaveChanges = 0;
            var expectedCount       = TestConstants.DefaultNumberOfModels;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
            Assert.AreEqual(expectedSaveChanges, this.albums.NumberOfSaves);
            Assert.AreEqual(expectedCount, this.albums.NumberOfModels);
        }
示例#13
0
        public void DeleteWithValidIdShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var result                      = controller.Delete(0);
            var actual                      = result as OkNegotiatedContentResult <string>;
            var expectedContent             = "Comment deleted";
            var expectedNumberOfComments    = TestConstants.DefaultNumberOfModels - 1;
            var expectedNumberOfSaveChanges = 1;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedNumberOfComments, this.comments.NumberOfModels);
            Assert.AreEqual(expectedNumberOfSaveChanges, this.comments.NumberOfSaves);
        }
示例#14
0
        public void PostWithInvalidModelStateShouldReturnInvalidModelStateResult()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            controller.ModelState.AddModelError("url", "Invalid url!");

            var photo  = new PhotoRequestModel();
            var result = controller.Post(photo);
            var expectedSaveChanges    = 0;
            var expectedNumberOfPhotos = TestConstants.DefaultNumberOfModels;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
            Assert.AreEqual(expectedNumberOfPhotos, this.photos.NumberOfModels);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#15
0
        public void PostWithInvalidModelShouldReturnInvalidModelStateResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            controller.ModelState.AddModelError("content", "Invalid content!");

            var commentToBeAdded = new CommentRequestModel();
            var result           = controller.Post(0, commentToBeAdded);
            var expectedNumberOfCommentsAdded = 0;
            var expectedSaveChanges           = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
            Assert.AreEqual(expectedNumberOfCommentsAdded, this.photos.GetById(0).Comments.Count);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#16
0
        public void PutWithInvalidModelShouldReturnInvalidModelStateResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            controller.ModelState.AddModelError("content", "Invalid content!");

            var updatedComment       = new CommentRequestModel();
            var result               = controller.Put(0, updatedComment);
            var expectedUpdatedCount = 0;
            var expectedSaveChanges  = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
            Assert.AreEqual(expectedUpdatedCount, this.comments.UpdatedEntities.Count);
            Assert.AreEqual(expectedSaveChanges, this.comments.NumberOfSaves);
        }
示例#17
0
        public void PutWithInvalidModelStateShouldReturnInvalidModelStateResultWithContent()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            controller.ModelState.AddModelError("title", "Title cannot be null.");

            var emptyAlbum = new AlbumRequestModel();
            var result     = controller.Put(0, emptyAlbum);

            var expectedUpdates          = 0;
            var expectedSaveChangesCalls = 0;

            Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
            Assert.AreEqual(expectedUpdates, this.albums.UpdatedEntities.Count);
            Assert.AreEqual(expectedSaveChangesCalls, this.albums.NumberOfSaves);
        }
示例#18
0
        public void DeleteWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            var result = controller.Delete(0);

            var actual = result as OkNegotiatedContentResult <string>;
            var expectedSaveChanges = 1;
            var expectedCount       = TestConstants.DefaultNumberOfModels - 1;
            var expectedContent     = "Album deleted with all pictures inside.";

            // TODO: Add Assert to check if all photos are removed.
            Assert.IsNotNull(result);
            Assert.AreEqual(expectedSaveChanges, this.albums.NumberOfSaves);
            Assert.AreEqual(expectedCount, this.albums.NumberOfModels);
            Assert.AreEqual(expectedContent, actual.Content);
        }
示例#19
0
        public void PutWithInvalidUserShouldReturnUnauthorisedResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos, false);

            var updatedComment = new CommentRequestModel()
            {
                Content = "Edited Content"
            };
            var result = controller.Put(TestConstants.DefaultNonExistingModelId, updatedComment);
            var expectedUpdatedCount = 0;
            var expectedSaveChanges  = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            Assert.AreEqual(expectedUpdatedCount, this.comments.UpdatedEntities.Count);
            Assert.AreEqual(expectedSaveChanges, this.comments.NumberOfSaves);
        }
示例#20
0
        public void PostWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            var albumToBeAdded = new AlbumRequestModel()
            {
                Title = TestConstants.ValidTitle
            };
            var result = controller.Post(albumToBeAdded);

            var expectedSaveChanges       = 1;
            var expectedAlbumsAfterChange = TestConstants.DefaultNumberOfModels + 1;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <int>));
            Assert.AreEqual(expectedAlbumsAfterChange, this.albums.NumberOfModels);
            Assert.AreEqual(expectedSaveChanges, this.albums.NumberOfSaves);
        }
示例#21
0
        public void PostWithInvalidPhotoIdShouldReturnNotFoundResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var commentToBeAdded = new CommentRequestModel()
            {
                Content = TestConstants.ValidContent,
                UserId  = TestConstants.ValidUserId
            };
            var result = controller.Post(TestConstants.DefaultNonExistingModelId, commentToBeAdded);
            var expectedNumberOfCommentsAdded = 0;
            var expectedSaveChanges           = 0;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            Assert.AreEqual(expectedNumberOfCommentsAdded, this.photos.GetById(0).Comments.Count);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#22
0
        public void PutWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var updatedComment = new CommentRequestModel()
            {
                Content = "Edited Content"
            };
            var result               = controller.Put(0, updatedComment);
            var actual               = result as OkNegotiatedContentResult <string>;
            var expectedContent      = "Comment updated";
            var expectedUpdatedCount = 1;
            var expectedSaveChanges  = 1;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedUpdatedCount, this.comments.UpdatedEntities.Count);
            Assert.AreEqual(expectedSaveChanges, this.comments.NumberOfSaves);
        }
示例#23
0
        public void PutWithValidDataProvidedShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetAlbumsController(this.albums, this.users, this.photos);

            var correctedTitleAlbum = new AlbumRequestModel()
            {
                Title = "CoolTitle"
            };
            var result = controller.Put(0, correctedTitleAlbum);

            var actual                   = result as OkNegotiatedContentResult <string>;
            var expectedContent          = "Album updated";
            var expectedUpdates          = 1;
            var expectedSaveChangesCalls = 1;

            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedUpdates, this.albums.UpdatedEntities.Count);
            Assert.AreEqual(expectedSaveChangesCalls, this.albums.NumberOfSaves);
        }
示例#24
0
        public void PostWithInvalidAlbumIdShouldReturnNotFoundResult()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            var photo = new PhotoRequestModel
            {
                Title         = TestConstants.ValidTitle,
                ImageUrl      = TestConstants.ValidUrl,
                FileExtension = TestConstants.ValidFileExtension,
                AlbumId       = TestConstants.DefaultNonExistingModelId
            };
            var result = controller.Post(photo);
            var expectedSaveChanges    = 0;
            var expectedNumberOfPhotos = TestConstants.DefaultNumberOfModels;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            Assert.AreEqual(expectedNumberOfPhotos, this.photos.NumberOfModels);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#25
0
        public void PostWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            var photo = new PhotoRequestModel
            {
                Title         = TestConstants.ValidTitle,
                ImageUrl      = TestConstants.ValidUrl,
                FileExtension = TestConstants.ValidFileExtension,
                AlbumId       = 0
            };
            var result = controller.Post(photo);
            var expectedNumberOfPhotos = 16;
            var expectedSaveChanges    = 1;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <int>));
            Assert.AreEqual(expectedNumberOfPhotos, this.photos.NumberOfModels);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#26
0
        public void PostWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetCommentsController(this.comments, this.photos);

            var commentToBeAdded = new CommentRequestModel()
            {
                Content = TestConstants.ValidContent,
                UserId  = TestConstants.ValidUserId
            };
            var result                        = controller.Post(0, commentToBeAdded);
            var actual                        = result as OkNegotiatedContentResult <string>;
            var expectedContent               = "Comment successfully added.";
            var expectedSaveChanges           = 1;
            var expectedNumberOfCommentsAdded = 1;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedNumberOfCommentsAdded, this.photos.GetById(0).Comments.Count);
            Assert.AreEqual(expectedSaveChanges, this.photos.NumberOfSaves);
        }
示例#27
0
        public void PutWithValidDataShouldReturnOkResult()
        {
            var controller = ControllerMockFactory.GetPhotosController(this.photos, this.albums);

            var result          = controller.Put(0, true);
            var expectedContent = "Successfully liked picture!";
            var expectedLikes   = 1;
            var actual          = result as OkNegotiatedContentResult <string>;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedLikes, this.photos.GetById(0).Likes);

            result          = controller.Put(0, false);
            expectedContent = "Successfully disliked picture!";
            expectedLikes   = 0;
            actual          = result as OkNegotiatedContentResult <string>;

            Assert.IsNotNull(result);
            Assert.AreEqual(expectedContent, actual.Content);
            Assert.AreEqual(expectedLikes, this.photos.GetById(0).Likes);
        }