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"); }
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); }
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"); }
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"); }