Esempio n. 1
0
        public async Task CreatesNewWorkspacesAndUpdatesOldInaccessibleWorkspaces()
        {
            prepareDatabase(new[]
            {
                new MockWorkspace {
                    Id = 1
                },
                new MockWorkspace {
                    Id = 2, IsInaccessible = true
                },
            });

            var newWorkspaces = new[]
            {
                new MockWorkspace {
                    Id = 2
                },
                new MockWorkspace {
                    Id = 3
                },
                new MockWorkspace {
                    Id = 4
                },
            };

            var state = new PersistNewWorkspacesState(dataSource);
            await state.Start(newWorkspaces);

            dataSource.Received().Update(Arg.Is <IThreadSafeWorkspace>(workspace => workspace.Id == 2));

            dataSource.Received(2).Create(Arg.Any <IThreadSafeWorkspace>());
            dataSource.Received().Create(Arg.Is <IThreadSafeWorkspace>(workspace => workspace.Id == 3));
            dataSource.Received().Create(Arg.Is <IThreadSafeWorkspace>(workspace => workspace.Id == 4));
        }
Esempio n. 2
0
        public async Task PersistedNewWorkspacesAreNotMarkedAsInaccessible()
        {
            prepareDatabase(new[]
            {
                new MockWorkspace {
                    Id = 1
                },
                new MockWorkspace {
                    Id = 2, IsInaccessible = true
                },
            });

            var newWorkspaces = new[]
            {
                new MockWorkspace {
                    Id = 2
                },
                new MockWorkspace {
                    Id = 3
                }
            };

            var state = new PersistNewWorkspacesState(dataSource);
            await state.Start(newWorkspaces);

            dataSource.Received().Update(Arg.Is <IThreadSafeWorkspace>(workspace => !workspace.IsInaccessible));
            dataSource.Received().Create(Arg.Is <IThreadSafeWorkspace>(workspace => !workspace.IsInaccessible));
        }
Esempio n. 3
0
        public async Task ReplacesOldInaccessibleWorkspaces()
        {
            prepareDatabase(new[]
            {
                new MockWorkspace {
                    Id = 1
                },
                new MockWorkspace {
                    Id = 2, IsInaccessible = true
                },
            });

            var newWorkspaces = new[]
            {
                new MockWorkspace {
                    Id = 2
                }
            };

            var state = new PersistNewWorkspacesState(dataSource);
            await state.Start(newWorkspaces);

            dataSource.Received().Update(Arg.Is <IThreadSafeWorkspace>(arg => arg.Id == 2));
        }