internal static WorkspaceDbModel GetWorkspaceDbModel(string?name = null) { WorkspaceDbModel workspaceDbModel = new WorkspaceDbModel(); workspaceDbModel.Name = name ?? Guid.NewGuid().ToString(); return(workspaceDbModel); }
public void GetUserWorkspaces_WorkspacesExist_CachesResult() { string authUserId = Guid.NewGuid().ToString(); string cacheKey = CacheKeys.UserWorkspace(authUserId); IDbContext dbContext = Substitute.For <IDbContext>(); IEnumerable <WorkspaceViewModel>?cachedViewModel = null; UserDbModel userDbModel = new UserDbModel(); userDbModel.Workspaces = new string[1] { "workspace1" }; WorkspaceDbModel[] workspaceDbModels = new WorkspaceDbModel[1] { new WorkspaceDbModel() }; UserRepository userRepository = Substitute.For <UserRepository>(); userRepository.GetByAuthIdAsync(dbContext, authUserId).Returns <UserDbModel>(userDbModel); WorkspaceRepository workspaceRepository = Substitute.For <WorkspaceRepository>(); workspaceRepository.GetManyByIdAsync(dbContext, userDbModel.Workspaces).Returns(workspaceDbModels); IMemoryCacheWrapper memoryCache = Substitute.For <IMemoryCacheWrapper>(); memoryCache.Get <IEnumerable <WorkspaceViewModel> >(cacheKey).Returns(cachedViewModel); UserWorkspaceViewService userWorkspaceViewService = new UserWorkspaceViewService(dbContext, memoryCache, Substitute.For <IMapper>(), userRepository, workspaceRepository); IEnumerable <WorkspaceViewModel> result = userWorkspaceViewService.GetUserWorkspaces(authUserId).Result; // assert memoryCache.Received(1).Set <IEnumerable <WorkspaceViewModel> >(cacheKey, Arg.Any <IEnumerable <WorkspaceViewModel> >(), Arg.Any <TimeSpan>()); }
public virtual async Task <WorkspaceDbModel> ExecuteAsync(IDbContext dbContext, string name) { WorkspaceDbModel model = new WorkspaceDbModel(); model.Name = name; await dbContext.InsertAsync <WorkspaceDbModel>(DbSchema.WorkspaceContainer, model); return(model); }
public void ExecuteAsync_WithArguments_Creates() { IDbContext dbContext = Substitute.For <IDbContext>(); string name = Guid.NewGuid().ToString(); WorkspaceDbModel workspaceDbModel = new WorkspaceDbModel(); dbContext.When(x => x.InsertAsync(DbSchema.WorkspaceContainer, Arg.Any <WorkspaceDbModel>())).Do((callInfo) => { Assert.AreEqual(DbSchema.WorkspaceContainer, callInfo.ArgAt <string>(0)); workspaceDbModel = callInfo.ArgAt <WorkspaceDbModel>(1); }); CreateWorkspaceCommand cmd = new CreateWorkspaceCommand(); cmd.ExecuteAsync(dbContext, name).Wait(); dbContext.Received(1).InsertAsync(DbSchema.WorkspaceContainer, Arg.Any <WorkspaceDbModel>()); Assert.AreEqual(name, workspaceDbModel.Name); }
public void GetManyByIdAsync_ItemsExist_ReturnsCollection() { MongoDbContext dbContext = RepositoryTestUtils.CreateDbContext(); WorkspaceDbModel workspaceDbModel1 = DbModelUtils.GetWorkspaceDbModel(); dbContext.InsertAsync(DbSchema.WorkspaceContainer, workspaceDbModel1).Wait(); WorkspaceDbModel workspaceDbModel2 = DbModelUtils.GetWorkspaceDbModel(); dbContext.InsertAsync(DbSchema.WorkspaceContainer, workspaceDbModel2).Wait(); dbContext.InsertAsync(DbSchema.WorkspaceContainer, DbModelUtils.GetWorkspaceDbModel()).Wait(); dbContext.InsertAsync(DbSchema.WorkspaceContainer, DbModelUtils.GetWorkspaceDbModel()).Wait(); IEnumerable <string> ids = new string[2] { workspaceDbModel1.Id, workspaceDbModel2.Id }; WorkspaceRepository workspaceRepository = new WorkspaceRepository(); List <WorkspaceDbModel> result = workspaceRepository.GetManyByIdAsync(dbContext, ids).Result.ToList(); Assert.AreEqual(2, result.Count()); Assert.IsNotNull(result.SingleOrDefault(x => x.Id == workspaceDbModel1.Id)); Assert.IsNotNull(result.SingleOrDefault(x => x.Id == workspaceDbModel2.Id)); }