public void GetEntityKeyValue_MultipleKeys_DerivedType_ForDateAndTimeOfDay() { // Arrange var entityInstance = new { Key1 = new Date(2015, 2, 26), Key2 = new TimeOfDay(1, 2, 3, 4) }; EdmEntityType baseEntityType = new EdmEntityType("NS", "Name"); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key1", EdmPrimitiveTypeKind.Date)); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key2", EdmPrimitiveTypeKind.TimeOfDay)); EdmEntityType derivedEntityType = new EdmEntityType("NS", "Derived", baseEntityType); EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, derivedEntityType.AsReference(), entityInstance); // Act var keyValue = ConventionsHelpers.GetEntityKeyValue(entityInstanceContext); // Assert Assert.Equal("Key1=2015-02-26,Key2=01:02:03.0040000", keyValue); }
public void CreateSelectExpandNode_ReturnsDifferentSelectExpandNode_IfEntityTypeIsDifferent() { // Arrange IEdmEntityType customerType = _customerSet.EntityType(); IEdmEntityType derivedCustomerType = new EdmEntityType("NS", "DerivedCustomer", customerType); EntityInstanceContext entity1 = new EntityInstanceContext(_writeContext, customerType.AsReference(), new Customer()); EntityInstanceContext entity2 = new EntityInstanceContext(_writeContext, derivedCustomerType.AsReference(), new Customer()); // Act var selectExpandNode1 = _serializer.CreateSelectExpandNode(entity1); var selectExpandNode2 = _serializer.CreateSelectExpandNode(entity2); // Assert Assert.NotSame(selectExpandNode1, selectExpandNode2); }
public void GetEntityKeyValue_MultipleKeys_DerivedType() { // Arrange var entityInstance = new { Key1 = "key1", Key2 = 2, Key3 = true }; EdmEntityType baseEntityType = new EdmEntityType("NS", "Name"); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key1", EdmPrimitiveTypeKind.String)); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key2", EdmPrimitiveTypeKind.Int32)); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key3", EdmPrimitiveTypeKind.Boolean)); EdmEntityType derivedEntityType = new EdmEntityType("NS", "Derived", baseEntityType); EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, derivedEntityType.AsReference(), entityInstance); // Act var keyValue = ConventionsHelpers.GetEntityKeyValue(entityInstanceContext); // Assert Assert.Equal("Key1='key1',Key2=2,Key3=true", keyValue); }
public void GetEntityKeyValue_DerivedType() { // Arrange var entityInstance = new { Key = "key" }; EdmEntityType baseEntityType = new EdmEntityType("NS", "Name"); baseEntityType.AddKeys(baseEntityType.AddStructuralProperty("Key", EdmPrimitiveTypeKind.String)); EdmEntityType derivedEntityType = new EdmEntityType("NS", "Derived", baseEntityType); EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, derivedEntityType.AsReference(), entityInstance); // Act var keyValue = ConventionsHelpers.GetEntityKeyValue(entityInstanceContext); // Assert Assert.Equal("'key'", keyValue); }
public void GetEntityKeyValue_ThrowsForNullKeys_WithMultipleKeys() { // Arrange var entityInstance = new { Key1 = "abc", Key2 = "def", Key3 = (string)null }; EdmEntityType entityType = new EdmEntityType("NS", "Name"); entityType.AddKeys(entityType.AddStructuralProperty("Key1", EdmPrimitiveTypeKind.String)); entityType.AddKeys(entityType.AddStructuralProperty("Key2", EdmPrimitiveTypeKind.Int32)); entityType.AddKeys(entityType.AddStructuralProperty("Key3", EdmPrimitiveTypeKind.Boolean)); EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, entityType.AsReference(), entityInstance); // Act & Assert Assert.Throws<InvalidOperationException>( () => ConventionsHelpers.GetEntityKeyValue(entityInstanceContext), "Key property 'Key3' of type 'NS.Name' is null. Key properties cannot have null values."); }
public void GetEntityKeyValue_MultipleKeys_ForDateAndTimeOfDay() { // Arrange var entityInstance = new { Key1 = new Date(2015, 12, 2), Key2 = new TimeOfDay(4, 3, 2, 1) }; EdmEntityType entityType = new EdmEntityType("NS", "Name"); entityType.AddKeys(entityType.AddStructuralProperty("Key1", EdmPrimitiveTypeKind.Date)); entityType.AddKeys(entityType.AddStructuralProperty("Key2", EdmPrimitiveTypeKind.TimeOfDay)); EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, entityType.AsReference(), entityInstance); // Act var keyValue = ConventionsHelpers.GetEntityKeyValue(entityInstanceContext); // Assert Assert.Equal("Key1=2015-12-02,Key2=04:03:02.0010000", keyValue); }
public void GetEntityKeyValue_SingleKey_DifferentDataTypes(object value, object expectedValue) { // Arrange EdmEntityType entityType = new EdmEntityType("NS", "Name"); entityType.AddKeys(entityType.AddStructuralProperty("Property", EdmPrimitiveTypeKind.String)); var entityInstance = new { Property = value }; EntityInstanceContext entityInstanceContext = new EntityInstanceContext(_writeContext, entityType.AsReference(), entityInstance); // Act var keyValue = ConventionsHelpers.GetEntityKeyValue(entityInstanceContext); // Assert Assert.Equal(expectedValue, keyValue); }