public void FieldValueAccessorSetNullableDateTimeOffsetTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableDateTimeOffset"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { NullableDateTimeOffset = null }; DateTimeOffset?newValue = DateTime.UtcNow; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.NullableDateTimeOffset, newValue); }
public void FieldValueAccessorSetNullableBooleanTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableBoolean"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { NullableBoolean = true }; const bool newValue = false; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.NullableBoolean, newValue); }
public void FieldValueAccessorGetNullableDateTimeOffsetTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableDateTimeOffset"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); DateTimeOffset?value = DateTime.UtcNow; var user = new EntityWithFields { NullableDateTimeOffset = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.DateTimeOffsetValue, value); }
public void SetRegularPropertyValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Guid"); var property = new RegularProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity(); tableEntity.Properties.Add("Guid", new EntityProperty(Guid.NewGuid())); var entity = new EntityWithFields(); // Act property.SetMemberValue(tableEntity, entity); // Assert Assert.Equal(tableEntity.Properties["Guid"].GuidValue, entity.Guid); }
public void FieldValueAccessorGetInt32Test() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Int32"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); const Int32 value = 3; var user = new EntityWithFields { Int32 = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.Int32Value, value); }
public void FieldValueAccessorSetNullableGuidTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableGuid"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { NullableGuid = null }; Guid?newValue = Guid.NewGuid(); // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.NullableGuid, newValue); }
public void FieldValueAccessorGetNullableGuidTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableGuid"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); Guid? value = Guid.NewGuid(); var user = new EntityWithFields { NullableGuid = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.GuidValue, value); }
public void SetPartitionKeyValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("String"); var property = new PartitionKeyProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity { PartitionKey = "Key" }; var entity = new EntityWithFields(); // Act property.SetMemberValue(tableEntity, entity); // Assert Assert.Equal(tableEntity.PartitionKey, entity.String); }
public void FieldValueAccessorSetNullableDoubleTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableDouble"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { NullableDouble = 0.3 }; Double?newValue = 0.5; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.NullableDouble, newValue); }
public void FieldValueAccessorGetNullableInt64Test() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableInt64"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); Int64? value = 3; var user = new EntityWithFields { NullableInt64 = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.Int64Value, value); }
public void FieldValueAccessorSetStringTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("String"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { String = "aabbcc" }; const string newValue = "ccbbaa"; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.String, newValue); }
public void FieldValueAccessorGetBooleanTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Boolean"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); const bool value = true; var user = new EntityWithFields { Boolean = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.BooleanValue, value); }
public void FieldValueAccessorSetDateTimeOffsetTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("DateTimeOffset"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { DateTimeOffset = DateTime.Today }; DateTimeOffset newValue = DateTime.Now; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.DateTimeOffset, newValue); }
public void FieldValueAccessorSetBinaryTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Binary"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { Binary = new byte[] { 0x11, 0x22, 0x33 } }; var newValue = new byte[] { 0x33, 0x22, 0x11 }; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.Binary, newValue); }
public void FieldValueAccessorGetBinaryTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Binary"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var value = new byte[] { 0x11, 0x22, 0x33 }; var user = new EntityWithFields { Binary = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.BinaryValue, value); }
public void GetRowKeyValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("String"); var property = new RowKeyProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity(); var entity = new EntityWithFields { String = "Key" }; // Act property.GetMemberValue(entity, tableEntity); // Assert Assert.Equal(entity.String, tableEntity.RowKey); }
public void GetTimestampValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("DateTime"); var property = new TimestampProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity(); var entity = new EntityWithFields { DateTime = new DateTime(1980, 1, 1) }; // Act property.GetMemberValue(entity, tableEntity); // Assert Assert.Equal(DateTime.MinValue, tableEntity.Timestamp.UtcDateTime); }
public void SetETagValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("String"); var property = new ETagProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity { ETag = "*" }; var entity = new EntityWithFields(); // Act property.SetMemberValue(tableEntity, entity); // Assert Assert.Equal(tableEntity.ETag, entity.String); }
public void FieldValueAccessorSetInt64Test() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Int64"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { Int64 = 2 }; const Int64 newValue = 5; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.Int64, newValue); }
public void FieldValueAccessorGetStringTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("String"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); const string value = "aabbcc"; var user = new EntityWithFields { String = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.StringValue, value); }
public void FieldValueAccessorSetNullableInt64Test() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("NullableInt64"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); var entity = new EntityWithFields { NullableInt64 = null }; Int64?newValue = 5; // Act valueAccessor.SetValue(entity, new EntityProperty(newValue)); // Assert Assert.Equal(entity.NullableInt64, newValue); }
public void FieldValueAccessorGetDoubleTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Double"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); const Double value = 0.3; var user = new EntityWithFields { Double = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.Equal(entityField.DoubleValue, value); }
public void ProvidedTwoFlatEntitiesWithMatchingNamesProjectWorks_ProjectedEntity_NoException() { EntityWithFields entity = new EntityWithFields(); entity.Id = new VeryComplexStructKey() { NumericId = 1, TextId = "1", UniqueGuidId = Guid.NewGuid() }; entity.IntegerProperty = 2; entity.RandomDate = DateTime.MinValue; entity.Range = new DateRange(DateTime.MinValue, DateTime.MaxValue); entity.StringField = "Something"; ProjectionWithFields projection = entity.Project().To<ProjectionWithFields>(); Assert.IsTrue(entity.Id.Equals(projection.Id), message: "Id struct should be exactly the same"); Assert.IsTrue(entity.IntegerProperty == projection.IntegerProperty, message: "Properties should be exactly the same"); Assert.IsTrue(entity.RandomDate == projection.RandomDate, message: "Properties should be exactly the same"); Assert.IsTrue(entity.Range.Equals(projection.Range), message: "ValueObjects should be exactly the same"); Assert.IsTrue(entity.StringField == projection.StringField, message: "Fields should be exactly the same"); }
public void GetRegularPropertyValue() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("Int64"); var property = new RegularProperty <EntityWithFields>(fieldInfo); var tableEntity = new DynamicTableEntity(); var entity = new EntityWithFields { Int64 = 22 }; // Act property.GetMemberValue(entity, tableEntity); // Assert Assert.Contains("Int64", tableEntity.Properties.Keys); Assert.Equal(EdmType.Int64, tableEntity.Properties["Int64"].PropertyType); Assert.Equal(entity.Int64, tableEntity.Properties["Int64"].Int64Value); }
public void FieldValueAccessorGetDateTimeTest() { // Arrange FieldInfo fieldInfo = typeof(EntityWithFields).GetField("DateTime"); var valueAccessor = new FieldValueAccessor <EntityWithFields>(fieldInfo); DateTime value = DateTime.UtcNow; var user = new EntityWithFields { DateTime = value }; // Act EntityProperty entityField = valueAccessor.GetValue(user); // Assert Assert.NotNull(entityField.DateTimeOffsetValue); Assert.True(entityField.DateTimeOffsetValue.HasValue); Assert.Equal(entityField.DateTimeOffsetValue.Value.DateTime, value); }
public void ProvidedTwoFlatEntitiesWithMatchingNamesProjectWorksOverQueryable_ProjectedEntity_NoException() { EntityWithFields entity = new EntityWithFields(); entity.Id = new VeryComplexStructKey() { NumericId = 1, TextId = "1", UniqueGuidId = Guid.NewGuid() }; entity.IntegerProperty = 2; entity.RandomDate = DateTime.MinValue; entity.Range = new DateRange(DateTime.MinValue, DateTime.MaxValue); entity.StringField = "Something"; List<EntityWithFields> entityList = new List<EntityWithFields>() { entity }; List<ProjectionWithFields> projectionList = entityList.ProjectEnumerable().To<ProjectionWithFields>().ToList(); Assert.IsTrue(entityList.Count() == projectionList.Count(), message: "Same number of elements should be in both lists"); Assert.IsTrue(entityList[0].Id.Equals(projectionList[0].Id), message: "Id struct should be exactly the same"); Assert.IsTrue(entityList[0].IntegerProperty == projectionList[0].IntegerProperty, message: "Properties should be exactly the same"); Assert.IsTrue(entityList[0].RandomDate == projectionList[0].RandomDate, message: "Properties should be exactly the same"); Assert.IsTrue(entityList[0].Range.Equals(projectionList[0].Range), message: "ValueObjects should be exactly the same"); Assert.IsTrue(entityList[0].StringField == projectionList[0].StringField, message: "Fields should be exactly the same"); }
public void ProvidedAnExistingEntityItsProjectionUpdatesItProjectWorks_UpdatedEntity_NoException() { EntityWithFields entity = new EntityWithFields(); entity.Id = new VeryComplexStructKey() { NumericId = 1, TextId = "1", UniqueGuidId = Guid.NewGuid() }; entity.IntegerProperty = 2; entity.RandomDate = DateTime.MinValue; entity.Range = new DateRange(DateTime.MinValue, DateTime.MaxValue); entity.StringField = "Something"; entity.IAmNotSupposedToEverMap = "IShouldNeverChange"; ProjectionWithFields projection = entity.Project().To<ProjectionWithFields>(); projection.IntegerProperty = 3; projection.RandomDate = DateTime.MinValue.AddDays(value: 1); projection.Range = new DateRange(DateTime.MinValue.AddDays(value: 1), DateTime.MaxValue); projection.StringField = "SomethingSomething"; projection.Project().To<EntityWithFields>(entity); Assert.IsTrue(entity.Id.Equals(projection.Id), message: "Id struct should be exactly the same"); Assert.IsTrue(entity.IntegerProperty == projection.IntegerProperty, message: "Properties should be exactly the same"); Assert.IsTrue(entity.RandomDate == projection.RandomDate, message: "Properties should be exactly the same"); Assert.IsTrue(entity.Range.Equals(projection.Range), message: "ValueObjects should be exactly the same"); Assert.IsTrue(entity.StringField == projection.StringField, message: "Fields should be exactly the same"); Assert.IsTrue(entity.IAmNotSupposedToEverMap == "IShouldNeverChange", message: "This was an exisiting non-mapped field, should retain value"); }