Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
        }
Exemple #21
0
        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);
        }
Exemple #22
0
        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);
        }
Exemple #23
0
        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);
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        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");
        }
Exemple #27
0
        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");
        }