Example #1
0
        public void Should_ReturnAllValues_WithSameUserId(int numberOfStories)
        {
            var fixture = FixtureExtensions.CreateFixture();

            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <Story>());
            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <Group>());

            var userId = "1";
            // Arrange
            var stories = fixture
                          .Build <Story>()
                          .With(t => t.UserId, userId)
                          .CreateMany(numberOfStories).AsQueryable();

            var storyContext = fixture.FreezeDbContext <IStoryContext>();

            MockingHelpers.MockDbContextSet(storyContext, c => c.Set <Story>(), stories);

            var sut = fixture.Create <StoryRepository>();

            // Act
            var userStories = sut.GetUserStories(userId);

            // Assert
            Assert.NotNull(userStories);
            Assert.Equal(numberOfStories, userStories.Count);
        }
        public async Task GetUserProfile_ShouldReturn_UserProfile()
        {
            var fixture = FixtureExtensions.CreateFixture();

            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <UserProfileDomain.Models.UserProfile>());

            // Arrange
            var testUserId = fixture.Create <string>();
            var count      = fixture.Create <int>();

            var expectedProfile = fixture.Build <UserProfileDomain.Models.UserProfile>()
                                  .With(p => p.UserId, testUserId)
                                  .Create();
            var profileStore = new List <UserProfileDomain.Models.UserProfile>()
            {
                expectedProfile
            }
            .Concat(fixture.Build <UserProfileDomain.Models.UserProfile>()
                    .With(p => p.UserId, fixture.Create <string>())
                    .CreateMany(count));

            var upContext = fixture.FreezeDbContext <IUserProfileContext>();

            MockingHelpers.MockDbContextSet(upContext, c => c.Set <UserProfileDomain.Models.UserProfile>(), profileStore.AsQueryable());

            var sut = fixture.Create <UserProfileRepository>();

            // Act
            var actual      = sut.GetUserProfile(testUserId);
            var actualAsync = await sut.GetUserProfileAsync(testUserId);

            //Assert
            Assert.Equal(expectedProfile, actual);
            Assert.Equal(expectedProfile, actualAsync);
        }
        public async Task Get_ShouldReturn_FilteredItems()
        {
            var fixture = FixtureExtensions.CreateFixture();

            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <UserProfileDomain.Models.UserProfile>());

            // Arrange
            var testBirthDate    = fixture.Create <DateTime>();
            var nonMatchingCount = fixture.Create <int>();
            var mathcingCount    = fixture.Create <int>();

            var matching = fixture.Build <UserProfileDomain.Models.UserProfile>()
                           .With(p => p.BirthDate, testBirthDate)
                           .CreateMany(mathcingCount);
            var profileStore = matching.Concat(fixture.CreateMany <UserProfileDomain.Models.UserProfile>(nonMatchingCount)).ToList();

            var upContext = fixture.FreezeDbContext <IUserProfileContext>();

            MockingHelpers.MockDbContextSet(upContext, c => c.Set <UserProfileDomain.Models.UserProfile>(), profileStore.AsQueryable());

            var sut = fixture.Create <UserProfileRepository>();

            // Act
            var actual      = sut.Get(p => p.BirthDate == testBirthDate);
            var actualAsync = await sut.GetAsync(p => p.BirthDate == testBirthDate);

            //Assert
            Assert.Equal(matching, actual);
            Assert.Equal(matching, actualAsync);
        }
Example #4
0
        public void Should_ReturnEmptyList_WithNullOrWhitespace_UserId(string userId)
        {
            var fixture = FixtureExtensions.CreateFixture();

            // Arrange
            var storyContext = fixture.FreezeDbContext <IStoryContext>();

            MockingHelpers.MockDbContextSet(storyContext, c => c.Stories, null);

            var sut = fixture.Create <StoryRepository>();

            // Act
            var userStories = sut.GetUserStories(userId);

            // Assert
            Assert.Equal(0, userStories.Count);
        }
        public async Task GetUsersInRoleProfileAsync()
        {
            var fixture = FixtureExtensions.CreateFixture();

            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <UserProfileDomain.Models.UserProfile>());

            // Arrange
            var testRole   = fixture.Create <StandardRoles>();
            var matchCount = fixture.Create <int>();
            var count      = fixture.Create <int>();

            var expectedProfiles = fixture.CreateUsers(matchCount, () =>
                                                       fixture.CreateMany <StandardRoles>()
                                                       .Concat(new[] { testRole })
                                                       .Distinct()
                                                       .ToList()
                                                       ).ToList();

            var profileStore = expectedProfiles.Concat(
                fixture.CreateUsers(count, () =>
                                    fixture.CreateMany <StandardRoles>()
                                    .Where(r => r != testRole)
                                    .Distinct()
                                    .ToList()
                                    )
                ).ToList();

            var upContext = fixture.FreezeDbContext <IUserProfileContext>();

            MockingHelpers.MockDbContextSet(upContext, c => c.UserProfiles, profileStore.AsQueryable());

            var sut = fixture.Create <UserProfileRepository>();

            // Act
            var actualAsync = await sut.GetUsersInRoleProfileAsync(testRole);

            //Assert
            Assert.Equal(expectedProfiles, actualAsync);
            if (expectedProfiles.Any(p => p.User.Roles.Count > 1))
            {
                Assert.Contains(actualAsync, p => p.User.Roles.Count > 1);
            }
        }
        public void Authenticated_User_Returns_View()
        {
            //Arrange
            var controller = this.GetHomeControllerInstance();
            var systemUser = new SystemUser
            {
                Id        = new Random().Next(),
                FirstName = "Joe",
                LastName  = "Bloggs",
                Email     = "*****@*****.**",
                Roles     = new List <Role>
                {
                    new Role
                    {
                        Name = "Administrator"
                    }
                }
            };

            string[] roles = systemUser.Roles.Select(i => i.Name).ToArray();

            controller.InitAuthentication(systemUser.Id, systemUser.FirstName, systemUser.LastName, systemUser.Email, roles);

            //Act
            var result = controller.Index() as ViewResult;

            //Assert
            Assert.IsNotNull(result);

            var actionExecutedContext = MockingHelpers.InitActionExecutedContext(controller, result);

            controller.AccessOnActionExecuted(actionExecutedContext);

            var viewModel = (HomeViewModel)result.Model;

            Assert.IsNotNull(viewModel);
            Assert.IsNotNull(viewModel.CurrentUser);
        }
        public async Task All_ShouldReturn_AllEntitiesInContext()
        {
            var fixture = FixtureExtensions.CreateFixture();

            fixture.Customizations.Add(new ManyNavigationPropertyOmitter <UserProfileDomain.Models.UserProfile>());

            // Arrange
            var storeSize    = fixture.Create <int>();
            var profileStore = fixture.CreateMany <UserProfileDomain.Models.UserProfile>(storeSize);

            var upContext = fixture.FreezeDbContext <IUserProfileContext>();

            MockingHelpers.MockDbContextSet(upContext, c => c.Set <UserProfileDomain.Models.UserProfile>(), profileStore.AsQueryable());

            var sut = fixture.Create <UserProfileRepository>();

            // Act
            var actual      = sut.All;
            var actualAsync = await sut.AllAsync;

            //Assert
            Assert.Equal(profileStore, actual);
            Assert.Equal(profileStore, actualAsync);
        }