public void ShouldAddItemWhenNotInCollection() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); Assert.IsTrue(_observableUnderTest.Contains(addedItem)); }
public void ShouldReturnCompleteMatchesFirstDueToMatching() { var incompleteMatch = new ItemMatch <LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "complete")); var completeMatch = new ItemMatch <LocalTestResource, RemoteTestResource>( new LocalTestResource(2, 10), new RemoteTestResource(2, "complete")); var matches = new List <ItemMatch <LocalTestResource, RemoteTestResource> > { incompleteMatch, completeMatch }; var localTestResource = new LocalTestResource(1, 10); _channelConfig.Type1EndpointConfiguration.Endpoint.Create(localTestResource); var resultMatches = matches.BatchCompleteItems(_channelConfig, TargetType.T1).ToList(); Assert.AreEqual(2, resultMatches.Count); Assert.AreEqual(completeMatch, resultMatches[0]); Assert.AreEqual(incompleteMatch.Result2, resultMatches[1].Result2); Assert.AreEqual(localTestResource, resultMatches[1].Result1); }
public void ShouldDispatchWhenUpdated() { var localTestResource = new LocalTestResource(1); _dataSource.Create(localTestResource); _hasDispatched = false; _dataSource.Update(localTestResource); Assert.IsTrue(_hasDispatched); }
public void ShouldDeleteItem() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); _dataSource.Delete(addedItem); Assert.IsFalse(_observableUnderTest.Contains(addedItem)); Assert.AreEqual(0, _observableUnderTest.Count); }
public void ShouldReturnNullSynchActionWhenUnresolved() { _shouldResolve = false; var localTestResource = new LocalTestResource(1); var action = _resolutionStepUnderTest.Resolve(localTestResource); Assert.IsNotNull(action); Assert.AreEqual(typeof(NullSynchAction<LocalTestResource>), action.GetType()); }
public void ShouldDispatchWhenDeleting() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); _hasDispatched = false; _dataSource.Delete(addedItem); Assert.IsTrue(_hasDispatched); }
public void ShouldReturnNullSynchActionWhenUnresolved() { _shouldResolve = false; var localTestResource = new LocalTestResource(1); var action = _resolutionStepUnderTest.Resolve(localTestResource); Assert.IsNotNull(action); Assert.AreEqual(typeof(NullSynchAction <LocalTestResource>), action.GetType()); }
public void ShouldReturnActionWhenApplicable() { _shouldResolve = true; var localTestResource = new LocalTestResource(1); var action = _resolutionStepUnderTest.Resolve(localTestResource); Assert.IsNotNull(action); action.Execute(); Assert.IsTrue(_isResolved); }
public void ShouldReturnActionWhenApplicable() { _shouldResolve = true; var localTestResource = new LocalTestResource(1); var action = _resolutionStepUnderTest.Resolve(localTestResource); Assert.IsNotNull(action); action.Execute(); Assert.IsTrue(_isResolved); }
public void ShouldAddItemWhenNotInCollection() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); Assert.IsTrue(_observableUnderTest.Contains(addedItem)); }
public void ShouldAddEqualItemAfterOtherWhenAscending() { _observableUnderTest.OrderBy(ltr => ltr.Name).Asc(); _dateSource.Create(_smallest); _dateSource.Create(_bigger); _dateSource.Create(_biggest); var biggest2 = new LocalTestResource(200) { Name = "Zack" }; _dateSource.Create(biggest2); Assert.AreEqual(biggest2, _observableUnderTest[3]); }
public void ShouldAppendT1WhenDefaultButAvailable() { var itemMatch = new ItemMatch<LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "test")); var item1 = new LocalTestResource(1, 10); _channelConfig.Type1EndpointConfiguration.Endpoint.Create(item1); var result = _itemMatcherUnderTest.AppendIndividualItem(itemMatch); Assert.AreEqual(item1, result.Result1); Assert.AreEqual(itemMatch.Result2, result.Result2); }
public void ShouldDispatchWhenDeleting() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); _hasDispatched = false; _dataSource.Delete(addedItem); Assert.IsTrue(_hasDispatched); }
public void ShouldDeleteItem() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); _dataSource.Delete(addedItem); Assert.IsFalse(_observableUnderTest.Contains(addedItem)); Assert.AreEqual(0, _observableUnderTest.Count); }
public void ShouldAddUpdatedItemIfNotInTheList() { _dataSource = new InMemoryCrudDataEndpoint<LocalTestResource, int>( new TypeConfiguration<LocalTestResource, int>( ltr => ltr.CorrelationId.HasValue ? ltr.CorrelationId.Value : -1, -1)); var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); ConstrucTestSubject(); _dataSource.Update(addedItem); Assert.IsTrue(_observableUnderTest.Contains(addedItem)); }
public void SetUpTest() { _dateSource = new InMemoryCrudDataEndpoint<LocalTestResource, int>( new TypeConfiguration<LocalTestResource, int>(ltr => ltr.LocalId, 0)); _observableUnderTest = new AttachedObservableCollection<LocalTestResource>( _dateSource , new LocalTestResourceIdComparer()); _smallest = new LocalTestResource(10) { Name = "Anthony" }; _bigger = new LocalTestResource(1) { Name = "Bert" }; _biggest = new LocalTestResource(2) { Name = "Zack" }; }
public void ShouldTryMatchFromGivenSourceType1() { // Add resource that should be retrieved by matcher var localTestResource = new LocalTestResource(1, 10); _channelConfiguration.Type1EndpointConfiguration.Endpoint.Create(localTestResource); var testMatch = new ItemMatch<LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "Missing")); var resultMatch = _matcherUnderTest.Complete(testMatch); Assert.IsNotNull(resultMatch.Result1); Assert.AreEqual(localTestResource, resultMatch.Result1); }
public void ShouldAppendT1WhenDefaultButAvailable() { var itemMatch = new ItemMatch <LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "test")); var item1 = new LocalTestResource(1, 10); _channelConfig.Type1EndpointConfiguration.Endpoint.Create(item1); var result = _itemMatcherUnderTest.AppendIndividualItem(itemMatch); Assert.AreEqual(item1, result.Result1); Assert.AreEqual(itemMatch.Result2, result.Result2); }
public void ShouldTryMatchFromGivenSourceType1() { // Add resource that should be retrieved by matcher var localTestResource = new LocalTestResource(1, 10); _channelConfiguration.Type1EndpointConfiguration.Endpoint.Create(localTestResource); var testMatch = new ItemMatch <LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "Missing")); var resultMatch = _matcherUnderTest.Complete(testMatch); Assert.IsNotNull(resultMatch.Result1); Assert.AreEqual(localTestResource, resultMatch.Result1); }
public void ShouldAddUpdatedItemIfNotInTheList() { _dataSource = new InMemoryCrudDataEndpoint <LocalTestResource, int>( new TypeConfiguration <LocalTestResource, int>( ltr => ltr.CorrelationId.HasValue ? ltr.CorrelationId.Value : -1, -1)); var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); ConstrucTestSubject(); _dataSource.Update(addedItem); Assert.IsTrue(_observableUnderTest.Contains(addedItem)); }
public void ShouldAddEqualItemBeforeOtherWhenDesc() { _observableUnderTest.OrderBy(ltr => ltr.Name).Desc(); _dateSource.Create(_smallest); _dateSource.Create(_bigger); _dateSource.Create(_biggest); var biggest2 = new LocalTestResource(200) { Name = "Zack" }; _dateSource.Create(biggest2); Assert.AreEqual(biggest2, _observableUnderTest[0]); }
public void ShouldReplaceItemOnNewLocationWhenDifferentInstances() { _observableUnderTest.OrderBy(ltr => ltr.Name).Asc(); _dateSource.Create(_smallest); _dateSource.Create(_bigger); _dateSource.Create(_biggest); var newBiggest = new LocalTestResource(2) { Name = "Aaron" }; _dateSource.Update(newBiggest); Assert.IsFalse(_observableUnderTest.Contains(_biggest)); Assert.AreEqual(newBiggest, _observableUnderTest[0]); }
public void ShouldSwapInstanceWhenUpdated() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); var updatedItem = new LocalTestResource(1, 10) { Name = "Updated TestResource" }; _dataSource.Update(updatedItem); Assert.IsFalse(_observableUnderTest.Contains(addedItem)); Assert.IsTrue(_observableUnderTest.Contains(updatedItem)); Assert.AreEqual(1, _observableUnderTest.Count); }
public void SetUpTest() { _dateSource = new InMemoryCrudDataEndpoint <LocalTestResource, int>( new TypeConfiguration <LocalTestResource, int>(ltr => ltr.LocalId, 0)); _observableUnderTest = new AttachedObservableCollection <LocalTestResource>( _dateSource , new LocalTestResourceIdComparer()); _smallest = new LocalTestResource(10) { Name = "Anthony" }; _bigger = new LocalTestResource(1) { Name = "Bert" }; _biggest = new LocalTestResource(2) { Name = "Zack" }; }
public void ShouldWrapExceptionIntoChangeResolutionException() { var exception = new Exception("Whatever resolution error"); _testSynchronizationResolver = new SynchronizationResolver <LocalTestResource, string>( "bogus config", (item, cfg) => { throw exception; }, (item, cfg) => { _isResolved = true; return(new SynchronizationResult(true)); }); var changeResolvers = new List <ISynchronizationResolver <LocalTestResource> > { _testSynchronizationResolver }; _resolutionStepUnderTest = new ChangeResolutionStepOld <LocalTestResource, string>( changeResolvers, "bogus config"); var localTestResource = new LocalTestResource(1); try { _resolutionStepUnderTest.Resolve(localTestResource); Assert.Fail("Expecting ChangeResolutionException"); } catch (ChangeResolutionException ex) { Assert.AreEqual(string.Format("Failed to resolve change for {0}", ex.Item), ex.Message); Assert.AreEqual(exception, ex.InnerException); Assert.AreEqual(localTestResource, ex.Item); } }
public void ShouldBuildPipelineWithObservers() { _shouldResolve = true; LocalTestResource isCalled = null; _resolutionStepUnderTest.AddResultObserver(action => { isCalled = action.Applicant; }); var compositionSource = new List <LocalTestResource> { new LocalTestResource(1) }; var pipeline = _resolutionStepUnderTest.Compose(compositionSource); foreach (var synchronizationAction in pipeline) { Debug.WriteLine(synchronizationAction.Applicant); } Assert.AreEqual(compositionSource[0], isCalled); }
public void ShouldReturnCompleteMatchesFirstDueToMatching() { var incompleteMatch = new ItemMatch<LocalTestResource, RemoteTestResource>( null, new RemoteTestResource(1, "complete")); var completeMatch = new ItemMatch<LocalTestResource, RemoteTestResource>( new LocalTestResource(2, 10), new RemoteTestResource(2, "complete")); var matches = new List<ItemMatch<LocalTestResource, RemoteTestResource>> { incompleteMatch, completeMatch }; var localTestResource = new LocalTestResource(1, 10); _channelConfig.Type1EndpointConfiguration.Endpoint.Create(localTestResource); var resultMatches = matches.BatchCompleteItems(_channelConfig, TargetType.T1).ToList(); Assert.AreEqual(2, resultMatches.Count); Assert.AreEqual(completeMatch, resultMatches[0]); Assert.AreEqual(incompleteMatch.Result2, resultMatches[1].Result2); Assert.AreEqual(localTestResource, resultMatches[1].Result1); }
public void ShouldSwapInstanceWhenUpdated() { var addedItem = new LocalTestResource(1, 10) { Name = "TestResource" }; _dataSource.Create(addedItem); var updatedItem = new LocalTestResource(1, 10) { Name = "Updated TestResource" }; _dataSource.Update(updatedItem); Assert.IsFalse(_observableUnderTest.Contains(addedItem)); Assert.IsTrue(_observableUnderTest.Contains(updatedItem)); Assert.AreEqual(1, _observableUnderTest.Count); }
public void ShouldDispatchWhenUpdated() { var localTestResource = new LocalTestResource(1); _dataSource.Create(localTestResource); _hasDispatched = false; _dataSource.Update(localTestResource); Assert.IsTrue(_hasDispatched); }
public void ShouldWrapExceptionIntoChangeResolutionException() { var exception = new Exception("Whatever resolution error"); _testSynchronizationResolver = new SynchronizationResolver<LocalTestResource, string>( "bogus config", (item, cfg) => { throw exception; }, (item, cfg) => { _isResolved = true; return new SynchronizationResult(true); }); var changeResolvers = new List<ISynchronizationResolver<LocalTestResource>> { _testSynchronizationResolver }; _resolutionStepUnderTest = new ChangeResolutionStepOld<LocalTestResource, string>( changeResolvers, "bogus config"); var localTestResource = new LocalTestResource(1); try { _resolutionStepUnderTest.Resolve(localTestResource); Assert.Fail("Expecting ChangeResolutionException"); } catch (ChangeResolutionException ex) { Assert.AreEqual(string.Format("Failed to resolve change for {0}", ex.Item), ex.Message); Assert.AreEqual(exception, ex.InnerException); Assert.AreEqual(localTestResource, ex.Item); } }
public void ShouldReplaceItemOnNewLocationWhenDifferentInstances() { _observableUnderTest.OrderBy(ltr => ltr.Name).Asc(); _dateSource.Create(_smallest); _dateSource.Create(_bigger); _dateSource.Create(_biggest); var newBiggest = new LocalTestResource(2) { Name = "Aaron" }; _dateSource.Update(newBiggest); Assert.IsFalse(_observableUnderTest.Contains(_biggest)); Assert.AreEqual(newBiggest, _observableUnderTest[0]); }