コード例 #1
0
        public void ShouldCreateNewInstanceWhenLookupNotFound()
        {
            var context = new MockModelAContext();
            context.DeleteTable();
            context.CreateTable();

            var propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.LookupOrCreate(context, "P1", "R1");
            propManager.GetValue<string>(m => m.Text).ShouldBe(null);
            propManager.GetValue<string>(m => m.Partition).ShouldBe("P1");
            propManager.GetValue<string>(m => m.Id).ShouldBe("R1");
        }
コード例 #2
0
        public void ShouldReturnNullFromLookup()
        {
            var context = new MockModelAContext();
            context.DeleteTable();
            var entity = new MockModelATableEntity("P1", "R1");
            var mock = new MockModelA(entity) { Text = "FooBar", Number = 42 };
            mock.Property.Save(context);

            // ---

            context = new MockModelAContext();
            var propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P1", "R-2-NEW-ID");
            propManager.ShouldBe(null);
        }
コード例 #3
0
        public void ShouldLookupWithPartialKeys()
        {
            var context = new MockModelAContext();
            context.DeleteTable();
            var entity = new MockModelATableEntity("P1", "R1");
            var mock = new MockModelA(entity) { Text = "FooBar", Number = 42 };
            mock.Property.Save(context);

            // ---

            context = new MockModelAContext();

            var propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "Z", "X", KeyQueryType.StartsWith);
            propManager.ShouldBe(null);

            propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P", "R", KeyQueryType.StartsWith);
            propManager.GetValue<string>(m => m.Text).ShouldBe("FooBar");

            propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P1", "R", KeyQueryType.StartsWith);
            propManager.GetValue<string>(m => m.Text).ShouldBe("FooBar");

            propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P", "R1", KeyQueryType.StartsWith);
            propManager.GetValue<string>(m => m.Text).ShouldBe("FooBar");

            propManager = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P1", "R1", KeyQueryType.StartsWith);
            propManager.GetValue<string>(m => m.Text).ShouldBe("FooBar");
        }
コード例 #4
0
        public void ShouldCreateFromLookup()
        {
            var context = new MockModelAContext();
            context.DeleteTable();
            var entity = new MockModelATableEntity("P1", "R1");
            var mock = new MockModelA(entity) { Text = "FooBar", Number = 42 };
            mock.Property.Save(context);

            // ---
            // Lookup
            context = new MockModelAContext();
            var propManager1 = TablePropertyManager<MockModelA, MockModelATableEntity>.Lookup(context, "P1", "R1");
            propManager1.GetValue<string>(m => m.Text).ShouldBe("FooBar");
            propManager1.GetValue<string>(m => m.Partition).ShouldBe("P1");
            propManager1.GetValue<string>(m => m.Id).ShouldBe("R1");

            // ---
            // LookupOrCreate
            var propManager3 = TablePropertyManager<MockModelA, MockModelATableEntity>.LookupOrCreate(context, "P1", "R1");
            propManager3.GetValue<string>(m => m.Text).ShouldBe("FooBar");
            propManager3.GetValue<string>(m => m.Partition).ShouldBe("P1");
            propManager3.GetValue<string>(m => m.Id).ShouldBe("R1");
        }