Exemple #1
0
        public void Contains()
        {
            var set  = this.Database.Set <Test001>(this.Transaction);
            var data = new List <Test001>();

            set.Clear();
            data.AddRange(new[]
            {
                new Test001()
                {
                    Field1 = "1", Field2 = "3", Field3 = "A"
                },
                new Test001()
                {
                    Field1 = "2", Field2 = "2", Field3 = "B"
                },
                new Test001()
                {
                    Field1 = "3", Field2 = "1", Field3 = "C"
                }
            });
            set.AddOrUpdate(data);
            var query    = this.Database.AsQueryable <Test001>(this.Transaction);
            var element1 = data[1];
            var element2 = new Test001();

            Assert.IsTrue(query.Contains(element1));
            Assert.IsFalse(query.Contains(element2));
        }
Exemple #2
0
        public void CanIncrement_Numeric()
        {
            var subject     = new Test001();
            var incrementor = new LambdaPropertyIncrementorStrategy().CreateNumericIncrementor <Test001>(
                typeof(Test001).GetProperty("Version")
                );

            for (var a = 0; a < 1024; a++)
            {
                Assert.AreEqual(a, subject.Version);
                incrementor(subject);
            }
        }
Exemple #3
0
        public void Delete_ConcurrencyFailure_Numeric()
        {
            var set = this.Database.Set <Test001>(this.Transaction);

            set.Clear();
            var data = new Test001()
            {
                Field1 = "1", Field2 = "2", Field3 = "3"
            };

            set.AddOrUpdate(data);
            Assert.AreEqual(0, data.Version);
            data.Field1 = "updated";
            set.AddOrUpdate(data);
            Assert.Greater(data.Version, 0);
            data.Version--;
            Assert.Throws <InvalidOperationException>(() => set.Remove(data));
        }