protected override void PopulateData()
        {
            using (var session = Domain.OpenSession())
                using (var transaction = session.OpenTransaction()) {
                    var item = new TestEntity(session)
                    {
                        String = "test1"
                    };
                    var item2 = new TestEntity2(session)
                    {
                        String = "test2", Value3 = MyEnum.Foo
                    };
                    item.Link = item2;
                    var list = new ListEntity(session)
                    {
                        String = "test3", Owner = item, Link = item2
                    };
                    item.LinkOnList = list;
                    var item3 = new TestEntity(session)
                    {
                        String = "test4"
                    };

                    transaction.Complete();
                }
        }
コード例 #2
0
        public void CanPersistLinqSelectIEnumerable()
        {
            using (var store = NewDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    var entity = new TestEntity2
                    {
                        Id       = 1,
                        Property = new[] { 1, 2 }.Select(x => x - 1)
                    };

                    session.Store(entity);
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    var loadedEntity = session.Load <TestEntity2>(1);
                    var array        = loadedEntity.Property.ToList();

                    Assert.Equal(0, array[0]);
                    Assert.Equal(1, array[1]);
                }
            }
        }
コード例 #3
0
        public void SerializeToString_WhenDateTime_ExpectSerializeAndDeserialize()
        {
            // Arrange
            var protocolBufferSerializer = new ProtocolBufferSerializer(true);

            var testEntity = new TestEntity2
            {
                Value1 = new DateTime(2018, 1, 1),
                Value2 = 2.53m,
            };

            var serialized = testEntity.SerializeToByteArray().ToBase64String();
            var des        = serialized.DecodeBase64ToString().Deserialize <TestEntity2>();

            return;

            // Act
            var stopwatch                = Stopwatch.StartNew();
            var serializeToString        = protocolBufferSerializer.SerializeToString <TestEntity2>(testEntity);
            var deserializeFromByteArray = protocolBufferSerializer.DeserializeFromString(serializeToString, typeof(TestEntity2)) as TestEntity2;

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(deserializeFromByteArray.Value1, Is.EqualTo(new DateTime(2018, 1, 1)));
            Assert.That(deserializeFromByteArray.Value2, Is.EqualTo(2.53m));
        }
コード例 #4
0
ファイル: RavenDB_3013.cs プロジェクト: j2jensen/ravendb
        public void CanPersistLinqSelectIEnumerable()
        {
            using (var store = NewDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    var entity = new TestEntity2
                    {
                        Id = 1,
                        Property = new[] { 1, 2 }.Select(x => x - 1)
                    };

                    session.Store(entity);
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    var loadedEntity = session.Load<TestEntity2>(1);
                    var array = loadedEntity.Property.ToList();

                    Assert.Equal(0, array[0]);
                    Assert.Equal(1, array[1]);
                }
            }
        }
コード例 #5
0
        public void Given_EntitiesOfDifferentTypes_When_ComparingEquality_Then_ReturnsFalse()
        {
            // Arrance
            var leftEntity  = new TestEntity();
            var rightEntity = new TestEntity2();

            // Act
            var actual = leftEntity.Equals(rightEntity);

            // Assert
            Assert.False(actual);
        }
コード例 #6
0
        protected override void PopulateData()
        {
            using (var session = Domain.OpenSession())
                using (var transaction = session.OpenTransaction()) {
                    var a = new TestEntity1 {
                        CreationDate = DateTime.UtcNow.AddDays(-10)
                    };
                    var b = new TestEntity1 {
                        CreationDate = DateTime.UtcNow.AddDays(-9)
                    };
                    var c = new TestEntity1 {
                        CreationDate = DateTime.UtcNow.AddDays(-8)
                    };

                    var d = new TestEntity2 {
                        CreationDate = DateTime.UtcNow.AddDays(-6), DirectlyDeclaredField = 10, Value = 100, Comment = "100"
                    };
                    var e = new TestEntity2 {
                        CreationDate = DateTime.UtcNow.AddDays(-5), DirectlyDeclaredField = 11, Value = 101, Comment = "101"
                    };
                    var f = new TestEntity2 {
                        CreationDate = DateTime.UtcNow.AddDays(-4), DirectlyDeclaredField = 12, Value = 102, Comment = "102"
                    };

                    var g = new TestEntity3 {
                        CreationDate = DateTime.UtcNow.AddDays(-3), DirectlyDeclaredField = 20, Value = 200, Comment = "200", Field4 = 1.1f
                    };
                    var h = new TestEntity3 {
                        CreationDate = DateTime.UtcNow.AddDays(-2), DirectlyDeclaredField = 21, Value = 201, Comment = "201", Field4 = 1.2f
                    };
                    var i = new TestEntity3 {
                        CreationDate = DateTime.UtcNow.AddDays(-1), DirectlyDeclaredField = 22, Value = 202, Comment = "202", Field4 = 1.3f
                    };
                    var j = new TestEntity3 {
                        CreationDate = DateTime.UtcNow.AddDays(-1), DirectlyDeclaredField = 22, Value = 202, Comment = "202", Field4 = 1.4f
                    };

                    _ = g.Field5.Add(d);
                    _ = g.Field5.Add(h);
                    _ = h.Field5.Add(e);
                    _ = h.Field5.Add(i);
                    _ = i.Field5.Add(j);

                    var status = new Status {
                        Name = "test"
                    };
                    _ = new TestEntity4 {
                        TestField = "Test", Status = status
                    };

                    transaction.Complete();
                }
        }
コード例 #7
0
        public void CanCopyOneEntityToAnother()
        {
            var source = new TestEntity
            {
                Id   = 1,
                Name = "Name"
            };

            var copy = new TestEntity2();

            source.MapTo(copy);

            Assert.Equal(source.Name, copy.Name);
            Assert.Equal(source.Id, copy.Id);
        }
コード例 #8
0
        public void CustomLocalizableAttribute()
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("");

            var e = new TestEntity2();

            e.Extensions.InitializeRules();
            e.Extensions.BrokenRules[0].Message.ShouldEqual("Neutral");

            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("pl-PL");

            e = new TestEntity2();
            e.Extensions.InitializeRules();

            e.Extensions.BrokenRules[0].Message.ShouldEqual("Polish");
        }
コード例 #9
0
        public void Test03()
        {
            using (var session = Domain.OpenSession(new SessionConfiguration(SessionOptions.ClientProfile | SessionOptions.AutoActivation))) {
                var testEntity = new TestEntity {
                    Text = "TestEntityTest03"
                };
                var testEntity2 = new TestEntity2(session, testEntity);

                Assert.That(testEntity.Key.IsTemporary(Domain), Is.True);
                Assert.That(testEntity2.Key.IsTemporary(Domain), Is.False);
                Assert.That(testEntity2.Key.Value.GetValue(1), Is.LessThan(0));

                Assert.DoesNotThrow(() => session.SaveChanges());

                Assert.That(testEntity.Key.IsTemporary(Domain), Is.False);
                Assert.That(testEntity2.Key.IsTemporary(Domain), Is.False);
                Assert.That(testEntity2.Key.Value.GetValue(1), Is.GreaterThan(0));
            }
        }
コード例 #10
0
        public void SimpleSerializerTest()
        {
            var stream = new MemoryStream();
            var reader = new BinaryReader(stream);
            var writer = new BinaryWriter(stream);

            var serializer = new SimpleEntitySerializer<TestEntity2>();
            serializer.Serialize(writer, new TestEntity2(), new SerializationInfo());

            var ent = new TestEntity2(); // TODO: CREATE EMPTY ENTITY
            stream.Position = 0;
            serializer.Deserialize(reader, ref ent, new SerializationInfo());

            Assert.AreEqual(Int64.MaxValue, ent.Int64);
            Assert.AreEqual(Int32.MaxValue, ent.Int32);
            Assert.AreEqual(Int16.MaxValue, ent.Int16);
            Assert.AreEqual(Double.MaxValue, ent.Double);
            Assert.AreEqual(Single.MaxValue, ent.Float);
            Assert.AreEqual("TEST", ent.String);
        }
        protected override void PopulateData()
        {
            using (var session = Domain.OpenSession())
                using (var transaction = session.OpenTransaction()) {
                    var testEntity3 = new TestEntity3(session)
                    {
                        Name = "test"
                    };
                    var testEntity2 = new TestEntity2(session)
                    {
                        Name = "test", TestEntity2LinkToTestEntity3 = testEntity3
                    };
                    _ = new TestEntity1(session)
                    {
                        TestEntity1LinkToTestEntity2 = testEntity2
                    };
                    _ = new TestEntity1(session);

                    transaction.Complete();
                }
        }
コード例 #12
0
        public virtual void execute()
        {
            long start = Environment.TickCount;

            // Do something for nearly 60 seconds (job gets invoked every 60 seconds
            while (Environment.TickCount - start < 58000)
            {
                IList <TestEntity>  allTestEntities  = null;
                IList <TestEntity2> allTest2Entities = null;

                ICache newCache = CacheProvider.GetCurrentCache();

                CacheContext.ExecuteWithCache <Object>(newCache, delegate()
                {
                    allTestEntities  = HelloWorldService.GetAllTestEntities();
                    allTest2Entities = HelloWorldService.GetAllTest2Entities();
                    return(null);
                });

                if (allTestEntities.Count > 0)
                {
                    IRevertChangesSavepoint savepoint = RevertChangesHelper.CreateSavepoint(allTestEntities);
                    allTestEntities[0].MyString = "Hallo";
                    allTestEntities[0].Version  = -67;
                    allTestEntities[0].Relation = null;

                    savepoint.RevertChanges();
                }


                // Evaluate random type of change ( INSERT / UPDATE / DELETE / NOTHING)
                double randomChange = random.NextDouble();

                bool entity2Change = random.NextDouble() > 0.66;

                // Evaluate entity to change by its index in the result list of existing entities (necessary for UPDATE /
                // DELETE)
                int changeIndex = (int)(random.NextDouble() * allTestEntities.Count);

                // Evaluate entity2 to select its index in the result list of existing entities (necessary for INSERT of
                // entity1)
                int selectEntity2Index = (int)(random.NextDouble() * allTest2Entities.Count);

                // Evaluate new value to change on chosen entity (necessary for INSERT / UPDATE)
                int randomNewValue = (int)(random.NextDouble() * Int32.MaxValue / 2);

                // Map from randomChange to the enum-based operation to execute
                ChangeOperation changeOperation;
                if (randomChange < 0.10) // 10% probability for INSERTs
                {
                    changeOperation = ChangeOperation.INSERT;
                }
                else if (randomChange < 0.20) // 10% probability for DELETEs
                {
                    changeOperation = ChangeOperation.DELETE;
                }
                else if (randomChange < 0.40) // 20% probability for doing NOTHING
                {
                    changeOperation = ChangeOperation.NOTHING;
                }
                else
                // 60% probablity for doing an ordinary UPDATE on an entity
                {
                    changeOperation = ChangeOperation.UPDATE;
                }
                if (entity2Change && allTestEntities.Count > 0)
                {
                    // If there are less than 10 entities, force to insertion of one
                    if (allTest2Entities.Count < 10)// || ChangeOperation.INSERT.Equals(changeOperation))
                    {
                        TestEntity2 newEntity = new TestEntity2();
                        newEntity.MyValue2 = randomNewValue;
                        HelloWorldService.SaveTestEntities2(newEntity);
                        allTest2Entities.Add(newEntity);
                    }
                    //// If there are more than 20 entities, force to deletion of one
                    else if (allTestEntities.Count > 20 || ChangeOperation.DELETE.Equals(changeOperation))
                    {
                        TestEntity2 deleteEntity = allTest2Entities[selectEntity2Index];
                        allTest2Entities.RemoveAt(selectEntity2Index);
                        HelloWorldService.DeleteTestEntities2(deleteEntity);
                    }
                    else if (ChangeOperation.UPDATE.Equals(changeOperation))
                    {
                        TestEntity2 updateEntity = allTest2Entities[selectEntity2Index];
                        updateEntity.MyValue2 = randomNewValue;
                        HelloWorldService.SaveTestEntities2(updateEntity);
                    }
                    else
                    {
                        TestEntity2 noOpEntity = allTest2Entities[selectEntity2Index];
                        // Change nothing, but try to save entity (results in NO-OP)
                        HelloWorldService.SaveTestEntities2(noOpEntity);
                    }
                }
                else
                {
                    // If there are less than 10 entities, force to insertion of one
                    if (allTestEntities.Count < 10)// || ChangeOperation.INSERT.Equals(changeOperation))
                    {
                        TestEntity newEntity = new TestEntity();
                        newEntity.MyValue = randomNewValue;
                        HelloWorldService.SaveTestEntities(newEntity);
                        allTestEntities.Add(newEntity);
                    }
                    // If there are more than 20 entities, force to deletion of one
                    else if (allTestEntities.Count > 20 || ChangeOperation.DELETE.Equals(changeOperation))
                    {
                        TestEntity deleteEntity = allTestEntities[changeIndex];
                        allTestEntities.RemoveAt(changeIndex);
                        HelloWorldService.DeleteTestEntities(deleteEntity);
                    }
                    else if (ChangeOperation.UPDATE.Equals(changeOperation))
                    {
                        TestEntity  updateEntity = allTestEntities[changeIndex];
                        TestEntity2 testEntity2  = allTest2Entities.Count > 0 ? allTest2Entities[selectEntity2Index] : null;
                        updateEntity.MyValue              = randomNewValue;
                        updateEntity.Relation             = testEntity2;
                        updateEntity.EmbeddedObject.Name  = "Name_" + randomNewValue;
                        updateEntity.EmbeddedObject.Value = randomNewValue;
                        HelloWorldService.SaveTestEntities(updateEntity);
                    }
                    else
                    {
                        TestEntity noOpEntity = allTestEntities[changeIndex];
                        // Change nothing, but try to save entity (results in NO-OP)
                        HelloWorldService.SaveTestEntities(noOpEntity);
                    }
                }
                Thread.Sleep(500);
            }
        }