Exemplo n.º 1
0
        public void Convergent_AddNewValue()
        {
            var nodes = CreateNodes(3);
            var convergentReplicas = CreateConvergentReplicas(nodes);
            var random             = new Random();
            var objectsCount       = 1000;
            var objects            = new TestTypeBuilder(random).Build(Guid.NewGuid(), objectsCount);

            TestType value;

            foreach (var replica in convergentReplicas)
            {
                for (int i = 0; i < 100; i++)
                {
                    value = objects[random.Next(objectsCount)];

                    replica.Value.LocalAdd(value);

                    var(adds, removes) = replica.Value.State;

                    ConvergentDownstreamMerge(replica.Key.Id, adds, removes, convergentReplicas);
                }
            }

            var(expectedAdds, expectedRemoves) = convergentReplicas.First().Value.State;

            foreach (var replica in convergentReplicas)
            {
                var(actualAdds, actualRemoves) = replica.Value.State;

                Assert.Equal(expectedAdds, actualAdds);
                Assert.Equal(expectedRemoves, actualRemoves);
            }
        }
Exemplo n.º 2
0
        public void ShouldResolvePropertySetByBaseResolver()
        {
            var destType    = typeof(ClassW4Properties);
            var testBuilder = new TestTypeBuilder <ClassW2Properties, ClassW4Properties>();

            testBuilder.PropertyToResolve = destType.GetProperty("Prop3");
            testBuilder.ProertyValue      = 3;

            var mapper = new TestTypeMapper <ClassW2Properties, ClassW4Properties>(() => testBuilder);
            var source = new ClassW2Properties();
            var dest   = mapper.Map(source);

            Assert.IsNotNull(dest);
            Assert.AreEqual(3, dest.Prop3);
        }
Exemplo n.º 3
0
        public void Lookup_AddedRemovedAndUpdated_ReturnsTrue(TestType value, Guid tag, long timestamp)
        {
            var ourSet = new OUR_OptimizedSet <TestType>();

            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetElement <TestType>(value, tag, timestamp, false) }.ToImmutableHashSet());
            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetElement <TestType>(value, tag, timestamp + 1, true) }.ToImmutableHashSet());

            var newValue = new TestTypeBuilder(new Random()).Build(value.Id);

            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetElement <TestType>(newValue, tag, timestamp + 3, false) }.ToImmutableHashSet());

            var lookup = ourSet.Lookup(newValue);

            Assert.True(lookup);
        }
Exemplo n.º 4
0
        public void Lookup_AddedRemovedAndUpdated_ReturnsTrue(TestType value, Guid tag, Node node)
        {
            var clock = ImmutableSortedDictionary <Node, long> .Empty;

            var ourSet = new OUR_OptimizedSetWithVC <TestType>();

            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetWithVCElement <TestType>(value, tag, new VectorClock(clock.Add(node, 0)), false) }.ToImmutableHashSet());
            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetWithVCElement <TestType>(value, tag, new VectorClock(clock.Add(node, 1)), true) }.ToImmutableHashSet());

            var newValue = new TestTypeBuilder(new Random()).Build(value.Id);

            ourSet = ourSet.Merge(new[] { new OUR_OptimizedSetWithVCElement <TestType>(newValue, tag, new VectorClock(clock.Add(node, 3)), false) }.ToImmutableHashSet());

            var lookup = ourSet.Lookup(newValue);

            Assert.True(lookup);
        }
Exemplo n.º 5
0
        public void ShouldUserPriorBuilder()
        {
            var destType    = typeof(ClassW4Properties);
            var testBuilder = new TestTypeBuilder <ClassW2Properties, ClassW4Properties>();

            testBuilder.PropertyToResolve = destType.GetProperty("Prop2");
            testBuilder.ProertyValue      = 3;

            var mapper = new TestTypeMapper <ClassW2Properties, ClassW4Properties>(() => testBuilder);
            var source = new ClassW2Properties {
                Prop2 = 2
            };
            var dest = mapper.Map(source);

            Assert.IsNotNull(dest);
            Assert.AreEqual(2, dest.Prop2);
        }
Exemplo n.º 6
0
 public OUR_SetWithVCServiceTests()
 {
     _repository    = new OUR_SetWithVCRepository();
     _ourSetService = new OUR_SetWithVCService <TestType>(_repository);
     _builder       = new TestTypeBuilder(new Random());
 }
 public OUR_OptimizedSetWithVCTests()
 {
     _builder = new TestTypeBuilder(new Random());
 }
Exemplo n.º 8
0
 public OUR_OptimizedSetServiceTests()
 {
     _repository    = new OUR_OptimizedSetRepository();
     _ourSetService = new OUR_OptimizedSetService <TestType>(_repository);
     _builder       = new TestTypeBuilder(new Random());
 }
 public LWW_RegisterServiceTests()
 {
     _repository = new LWW_RegisterRepository();
     _service    = new LWW_RegisterService <TestType>(_repository);
     _builder    = new TestTypeBuilder(new Random());
 }
 public OR_SetServiceTests()
 {
     _repository   = new OR_SetRepository();
     _orSetService = new OR_SetService <TestType>(_repository);
     _builder      = new TestTypeBuilder(new Random());
 }
 public OUR_SetTests()
 {
     _builder = new TestTypeBuilder(new Random());
 }