コード例 #1
0
        public async void Test()
        {
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var fakeSignInManager = new FakeSignInManagerBuilder()
                                    .With(x => x.Setup(sm => sm.PasswordSignInAsync(It.IsAny <string>(),
                                                                                    It.IsAny <string>(),
                                                                                    It.IsAny <bool>(),
                                                                                    It.IsAny <bool>()))
                                          .ReturnsAsync(SignInResult.Success))
                                    .Build();
            var fakeEmailSender = new Mock <IEmailSender>();
            var fakeLogger      = new Mock <ILogger <AccountController> >();

            var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict);

            mockUrlHelper
            .Setup(x => x.IsLocalUrl(It.IsAny <string>()))
            .Returns(true)
            .Verifiable();

            var controller = new AccountController(
                fakeUserManager.Object,
                fakeSignInManager.Object,
                fakeEmailSender.Object,
                fakeLogger.Object);

            controller.Url = mockUrlHelper.Object;

            var result = await controller.Login(new LoginViewModel(), "testPath");

            Assert.IsType <RedirectResult>(result);
        }
コード例 #2
0
        public void PutPhoto_IfUserPhotosNotContainsPhoto_ShouldReturnNotFoundResult()
        {
            var mockService     = new Mock <IPhotoService>();
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******"
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;

            var result = controller.PutPhoto(new Photo()).Result as NotFoundObjectResult;

            Assert.IsInstanceOf <NotFoundObjectResult>(result);
            mockService.Verify(service => service.UpdatePhoto(It.IsAny <Photo>()), Times.Never());
        }
コード例 #3
0
        public void GetCurrentLoggedUser_ShouldReturnCurrentLoggedUser()
        {
            var mockService     = new Mock <IPhotoService>();
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User()));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;

            var result = controller.GetCurrentLoggedUser();

            Assert.IsInstanceOf <User>(result.Result);
        }
コード例 #4
0
        public void RemoveComment_IfPhotoIsNull_ShouldReturnNotFoundResult()
        {
            var mockService     = new Mock <IPhotoService>();
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******"
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;

            var result = controller.RemoveComment(1, new Comment {
                Id = 1
            });

            Assert.IsInstanceOf <NotFoundResult>(result);
        }
コード例 #5
0
        public void UnlikePhoto_WhenCalled_IfUserDidNotLikedPhoto_ShouldReturnBadRequestResult()
        {
            int photoId     = 1;
            var mockService = new Mock <IPhotoService>();

            mockService.Setup(service => service.GetPhotoById(photoId)).Returns(Photos[photoId]);
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******"
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;


            var result = controller.UnlikePhoto(photoId);

            Assert.IsInstanceOf <BadRequestObjectResult>(result);
        }
コード例 #6
0
        public void AddReply_ShouldCallAddReplyAndReturnOkResult()
        {
            int photoId = 1;

            Photos[photoId].Comments = new List <Comment> {
                new Comment {
                    Id = 1
                }
            };
            var mockService = new Mock <IPhotoService>();

            mockService.Setup(service => service.GetPhotoById(photoId)).Returns(Photos[photoId]);
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******"
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;


            var result = controller.AddReply(photoId, 1, new Reply {
                Id = 1
            });


            mockService.Verify(service => service.AddReply(It.IsAny <Comment>(), It.IsAny <Reply>(), It.IsAny <Photo>()), Times.Once());
            Assert.IsInstanceOf <OkResult>(result);
        }
コード例 #7
0
        public void DeletePhoto_ShouldCallDeletePhoto()
        {
            var photoId = 1;

            foreach (var photo in Photos)
            {
                photo.Album = new Album();
            }
            Photos[photoId].Album.UserId = "1";
            var mockService = new Mock <IPhotoService>();

            mockService.Setup(service => service.GetPhotoById(photoId)).Returns(Photos[photoId]);
            mockService.Setup(service => service.Photos).Returns(Photos);
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******", Photos = new List <Photo> {
                    Photos[photoId]
                }
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;

            controller.DeletePhoto(photoId);

            mockService.Verify(c => c.DeletePhoto(photoId), Times.Once());
        }
コード例 #8
0
        public void UnlikePhoto_WhenCalled_ShouldCallUnLikePhotoAndReturnOkResult()
        {
            int photoId     = 1;
            var mockService = new Mock <IPhotoService>();

            Photos[photoId].Likes.Add(new Like {
                Id = 1, UserId = "1"
            });
            Photos[photoId].NumberOfLikes = 1;
            mockService.Setup(service => service.GetPhotoById(photoId)).Returns(Photos[photoId]);
            var fakeUserManager = new FakeUserManagerBuilder()
                                  .Build();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "test1"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
                new Claim("custom-claim", "example claim value"),
            }, "mock"));

            fakeUserManager.Setup(u => u.FindByNameAsync("test1")).Returns(Task.FromResult(new User  {
                Id = "1", UserName = "******"
            }));
            var controller = new PhotoController(mockService.Object, _mapper, fakeUserManager.Object);
            var context    = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = user
                }
            };

            controller.ControllerContext = context;


            var result = controller.UnlikePhoto(photoId);


            mockService.Verify(service => service.UnlikePhoto(It.IsAny <Photo>(), It.IsAny <string>()), Times.Once());
            Assert.IsInstanceOf <OkResult>(result);
        }