Example #1
0
        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);
        }
Example #5
0
        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));
        }