예제 #1
0
        public void Handler_ReturnsNullUser_WhenNotFound_ByUserLoginInfo()
        {
            const string loginProvider      = "loginProvider";
            var          providerKey        = Guid.NewGuid().ToString();
            var          remoteMembershipId = new RemoteMembershipId
            {
                LoginProvider = loginProvider,
                ProviderKey   = Guid.NewGuid().ToString(),
            };
            var remoteMembership = new ProxiedRemoteMembership(remoteMembershipId);
            var user             = new User();

            user.RemoteMemberships.Add(remoteMembership);
            var data = new[] { user }.AsQueryable();
            var query     = new UserBy(new UserLoginInfo(loginProvider, providerKey));
            var dbSet     = new Mock <DbSet <User> >(MockBehavior.Strict).SetupDataAsync(data);
            var entities  = new Mock <IReadEntities>(MockBehavior.Strict);
            var entitySet = new EntitySet <User>(dbSet.Object, entities.Object);

            entities.Setup(x => x.Query <User>()).Returns(entitySet);
            var handler = new HandleUserByQuery(entities.Object);

            var result = handler.Handle(query).Result;

            result.ShouldBeNull();
            entities.Verify(x => x.Query <User>(), Times.Once);
        }
예제 #2
0
        public void Handler_ReturnsNullUser_WhenByUnauthenticatedPrincipal()
        {
            const int userId = 78;
            var       claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, userId.ToString(CultureInfo.InvariantCulture)),
            };
            var identity = new ClaimsIdentity(claims, null);
            var principal = new GenericPrincipal(identity, null);
            var data = new[] { new User {
                                   Name = "username",
                               } }.AsQueryable();
            var query     = new UserBy(principal);
            var dbSet     = new Mock <DbSet <User> >(MockBehavior.Strict).SetupDataAsync(data);
            var entities  = new Mock <IReadEntities>(MockBehavior.Loose);
            var entitySet = new EntitySet <User>(dbSet.Object, entities.Object);

            entities.Setup(x => x.Query <User>()).Returns(entitySet);
            var handler = new HandleUserByQuery(entities.Object);

            var result = handler.Handle(query).Result;

            result.ShouldBeNull();
            entities.Verify(x => x.Query <User>(), Times.Once);
        }
예제 #3
0
        public void Handler_ReturnsNullUser_WhenNotFound_ById()
        {
            const int userId = 7;
            var       data = new[] { new ProxiedUser(userId + 4) }.AsQueryable();
            var       query     = new UserBy(userId);
            var       dbSet     = new Mock <DbSet <User> >(MockBehavior.Strict).SetupDataAsync(data);
            var       entities  = new Mock <IReadEntities>(MockBehavior.Strict);
            var       entitySet = new EntitySet <User>(dbSet.Object, entities.Object);

            entities.Setup(x => x.Query <User>()).Returns(entitySet);
            var handler = new HandleUserByQuery(entities.Object);

            User result = handler.Handle(query).Result;

            result.ShouldBeNull();
            entities.Verify(x => x.Query <User>(), Times.Once);
        }
예제 #4
0
        public void Handler_ReturnsNullUser_WhenNotFound_ByName()
        {
            var userName = Guid.NewGuid().ToString();
            var data = new[] { new User {
                                   Name = Guid.NewGuid().ToString()
                               } }.AsQueryable();
            var query     = new UserBy(userName);
            var dbSet     = new Mock <DbSet <User> >(MockBehavior.Strict).SetupDataAsync(data);
            var entities  = new Mock <IReadEntities>(MockBehavior.Strict);
            var entitySet = new EntitySet <User>(dbSet.Object, entities.Object);

            entities.Setup(x => x.Query <User>()).Returns(entitySet);
            var handler = new HandleUserByQuery(entities.Object);

            var result = handler.Handle(query).Result;

            result.ShouldBeNull();
            entities.Verify(x => x.Query <User>(), Times.Once);
        }
예제 #5
0
        public void Handler_ReturnsNonNullUser_WhenAuthenticatedAndFound_ByPrincipal()
        {
            const int userId = 78;
            var       claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, userId.ToString(CultureInfo.InvariantCulture)),
            };
            var identity = new ClaimsIdentity(claims, "authenticationType");
            var principal = new GenericPrincipal(identity, null);
            var data = new[] { new ProxiedUser(userId) }.AsQueryable();
            var query     = new UserBy(principal);
            var dbSet     = new Mock <DbSet <User> >(MockBehavior.Strict).SetupDataAsync(data);
            var entities  = new Mock <IReadEntities>(MockBehavior.Strict);
            var entitySet = new EntitySet <User>(dbSet.Object, entities.Object);

            entities.Setup(x => x.Query <User>()).Returns(entitySet);
            var handler = new HandleUserByQuery(entities.Object);

            var result = handler.Handle(query).Result;

            result.ShouldNotBeNull();
            result.ShouldEqual(data.Single());
            entities.Verify(x => x.Query <User>(), Times.Once);
        }