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); }
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 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); }