public async Task <IEnumerable <Project> > GetUserProjectsAndBuildConfigs(string username) { try { IEnumerable <Data.Entities.Project> userProjects = await CiDashboardService.GetProjects(username); IEnumerable <Project> mappedUserProjects = Mapper.Map <IEnumerable <Data.Entities.Project>, IEnumerable <Project> >(userProjects); return(mappedUserProjects); } catch (Exception ex) { Logger.Error(ex, "Error requesting all project for {username}", username); } return(new List <Project>()); }
public async Task GetProjects_ReturnCorrectData() { _fixture.Customize <BuildConfig>(c => c.Without(f => f.Project)); IQueryable <Project> projects = _fixture .CreateMany <Project>() .AsQueryable(); string username = projects.First().User; DbSet <Project> projectsSet = A.Fake <DbSet <Project> >(builder => builder .Implements(typeof(IQueryable <Project>)) .Implements(typeof(IDbAsyncEnumerable <Project>))); A.CallTo(() => ((IDbAsyncEnumerable <Project>)projectsSet).GetAsyncEnumerator()) .Returns(new TestDbAsyncEnumerator <Project>(projects.GetEnumerator())); A.CallTo(() => ((IQueryable <Project>)projectsSet).Provider) .Returns(new TestDbAsyncQueryProvider <Project>(projects.Provider)); A.CallTo(() => ((IQueryable <Project>)projectsSet).Expression).Returns(projects.Expression); A.CallTo(() => ((IQueryable <Project>)projectsSet).ElementType).Returns(projects.ElementType); A.CallTo(() => ((IQueryable <Project>)projectsSet).GetEnumerator()).Returns(projects.GetEnumerator()); ICiDashboardContext context = A.Fake <ICiDashboardContext>(); A.CallTo(() => context.Projects).Returns(projectsSet); ICiDashboardContextFactory factory = A.Fake <ICiDashboardContextFactory>(); A.CallTo(() => factory.Create()).Returns(context); _fixture.Inject(factory); _fixture.Inject(context); CiDashboardService service = _fixture.Create <CiDashboardService>(); IEnumerable <Project> result = await service.GetProjects(username); result.Should() .NotBeNull() .And.NotBeEmpty() .And.BeEquivalentTo(projects.Where(p => p.User == username)); }