public void ShouldHaveQueryForEachKeyComparisonType() { var context = new MockModelAContext(); var query = context.Query; foreach (KeyQueryType keyQueryType in typeof(KeyQueryType).GetEnumValues()) { query.WhereKeysMatch(keyQueryType, "P1", "R1").ShouldNotBe(null); } }
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 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 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 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"); }
public void ShouldSaveChangesToTable() { var client = CloudSettings.CreateTableClient(); var context = new MockModelAContext(); client.DeleteTableIfExist(context.TableName); // --- var entity = new MockModelATableEntity("P1", "R1"); var mock = new MockModelA(entity) {Text = "FooBar", Number = 42}; mock.Property.Save(context); // --- var query = context.CreateQuery().Where(m => m.PartitionKey == "P1" && m.RowKey == "R1"); query.ToList().Count.ShouldBe(1); query = context.CreateQuery().Where(m => m.PartitionKey == "P1" && m.RowKey == "R2"); query.ToList().Count.ShouldBe(0); // --- client.DeleteTableIfExist(context.TableName); }