public async Task DoubleWayDataBinding() { var repoA = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repoA); var repoB = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repoB); repoA.Commit(new LogItem { Message = "G" }); repoA.Commit(new LogItem { Message = "H" }); repoA.Commit(new LogItem { Message = "X" }); repoB.Commit(new LogItem { Message = "Z" }); repoA.AssertEqual(repoB, 4); repoA.AssertEqual(RepositoryContainer.GetRepositoryForTest(), 4); }
public async Task SimpleCommitWithRemote() { var repo = new Repository <LogItem>(); var remote = await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repo); repo.Commit(new LogItem { Message = "1" }); repo.Commit(new LogItem { Message = "2" }); await Task.Delay(50); // Wait for the pull to update pointer. Assert.IsNotNull(remote.PullPointer); var remoteRepo = RepositoryContainer.GetRepositoryForTest(); remoteRepo.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }); repo.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }); }
public async Task OneCommitSync() { var repoA = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repoA); var repoB = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repoB); repoA.Commit(new LogItem { Message = "1" }); RepositoryContainer.GetRepositoryForTest().Assert( new LogItem { Message = "1" }); repoA.Assert( new LogItem { Message = "1" }); repoB.Assert( new LogItem { Message = "1" }); }
public async Task OnewayAutoPull() { var repo = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl).AttachAsync(repo); var repo2 = new Repository <LogItem>(); await new WebSocketRemote <LogItem>(EndpointUrl).AttachAsync(repo2); repo.Commit(new LogItem { Message = "1" }); repo.Commit(new LogItem { Message = "2" }); repo.Commit(new LogItem { Message = "3" }); repo.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }, new LogItem { Message = "3" }); RepositoryContainer.GetRepositoryForTest().Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }, new LogItem { Message = "3" }); repo2.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }, new LogItem { Message = "3" }); }
public async Task PreviousPushedTest() { var repo = new Repository <LogItem>(); repo.Commit(new LogItem { Message = "1" }); repo.Commit(new LogItem { Message = "2" }); var remote = await new WebSocketRemote <LogItem>(EndpointUrl) .AttachAsync(repo); await Task.Delay(50); Assert.IsNotNull(remote.PullPointer); var remoteRepo = RepositoryContainer.GetRepositoryForTest(); remoteRepo.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }); repo.Assert( new LogItem { Message = "1" }, new LogItem { Message = "2" }); }