예제 #1
0
        public void GetPropertyBuilder_CreateEntityBuilder_Test()
        {
            // Arrange
            var unitUnderTest = new CsdlBuilderFactory();

            // Act
            var result = unitUnderTest.CreateEntityBuilder();

            // Assert
            Assert.IsNotNull(result);
        }
예제 #2
0
        public void PropertyBuilder_Build_CsdlAttribute_DefaultValue_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.DefaultValue));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.AreEqual(-1, csdl.DefaultValue);
        }
예제 #3
0
        public void PropertyBuilder_Build_CsdlAttribute_CustomTypePassword_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.Password));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.AreEqual("Edm.Password", csdl.Type);
        }
예제 #4
0
        public void PropertyBuilder_Build_NotInList_Test()
        {
            // Arrange
            var propInfo        = typeof(B).GetProperty("A");
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var actual = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsNull(actual);
        }
예제 #5
0
        public void PropertyBuilder_Build_CsdlAttribute_ForceNullableToNotBeNullable_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.ForceNullableToNotBeNullable));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsFalse(csdl.Nullable);
        }
예제 #6
0
        public void PropertyBuilder_Build_CsdlAttribute_NotRequiredDefaultSoNoMetadata_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.NotRequiredNoMetadata));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsFalse(csdl.CustomData.TryGetValue(CsdlConstants.UIRequired, out _));
        }
예제 #7
0
        public void PropertyBuilder_Build_Null_Test()
        {
            // Arrange
            PropertyInfo propInfo        = null;
            var          propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var actual = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsNull(actual);
        }
예제 #8
0
        public void EntityBuilder_Build_ExcludeFromMetadata_Test()
        {
            // Arrange
            var entityBuilder = new CsdlBuilderFactory().CreateEntityBuilder();

            // Act
            var actual = entityBuilder.Build(typeof(EntityExcludeFromMetadata));

            // Assert
            Assert.AreEqual(2, actual.Properties.Count);
            Assert.AreEqual("Id", actual.Properties.Keys.First());
            Assert.AreEqual("Name", actual.Properties.Keys.Skip(1).First());
        }
예제 #9
0
        public void PropertyBuilder_Build_CsdlAttribute_Required_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.RequiredDespiteBeingNullable));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsTrue(csdl.CustomData.TryGetValue(CsdlConstants.UIRequired, out object isRequiredValue));
            Assert.IsTrue((bool)isRequiredValue);
        }
예제 #10
0
        public void PropertyBuilder_Build_CsdlAttribute_NotRequired_Test()
        {
            // Arrange
            var propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.NotRequired));
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var csdl       = propertyBuilder.Build(propInfo);
            var isRequired = csdl.CustomData.TryGetValue(CsdlConstants.UIRequired, out object isRequiredValue) && (bool)isRequiredValue;

            // Assert
            Assert.IsFalse(isRequired);
        }
예제 #11
0
        public void EntityBuilder_AddFromPropertyInfo_PropInfoNull_Test()
        {
            // Arrange
            var          dictionary    = new Dictionary <string, object>();
            PropertyInfo propInfo      = null;
            var          entityBuilder = new CsdlBuilderFactory().CreateEntityBuilder();

            // Act
            // Assert
            Assert.ThrowsException <ArgumentNullException>(() =>
            {
                entityBuilder.AddFromPropertyInfo(dictionary, propInfo);
            });
        }
예제 #12
0
        public void PropertyBuilder_Build_CsdlAttribute_MinLength_Test()
        {
            // Arrange
            var   propInfo        = typeof(EntityWithCsdlPropertyAttribute).GetProperty(nameof(EntityWithCsdlPropertyAttribute.MinLength));
            var   propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();
            ulong expected        = 5;

            // Act
            var csdl = propertyBuilder.Build(propInfo);

            // Assert
            Assert.IsTrue(csdl.CustomData.TryGetValue(CsdlConstants.UIMinLength, out object uiMinLength));
            Assert.AreEqual(expected, uiMinLength);
        }
예제 #13
0
        public void EntityBuilder_AddFromPropertyInfo_Test()
        {
            // Arrange
            var dictionary    = new Dictionary <string, object>();
            var propInfo      = typeof(Token).GetProperty("UserId");
            var entityBuilder = new CsdlBuilderFactory().CreateEntityBuilder();

            // Act
            entityBuilder.AddFromPropertyInfo(dictionary, propInfo);

            // Assert
            Assert.AreEqual(1, dictionary.Count);
            Assert.AreEqual("UserId", dictionary.Keys.First());
            Assert.AreEqual(typeof(CsdlProperty), dictionary.Values.First().GetType());
        }
예제 #14
0
        public void PropertyBuilder_Build_Test()
        {
            // Arrange
            var propInfo        = typeof(Token).GetProperty("UserId");
            var propertyBuilder = new CsdlBuilderFactory().CreatePropertyBuilder();

            // Act
            var actual = propertyBuilder.Build(propInfo);

            // Assert
            Assert.AreEqual("Edm.Int64", actual.Type);
            Assert.IsNull(actual.DefaultValue);
            Assert.AreEqual(1, actual.CustomData.Count);
            Assert.AreEqual("$NavigationKey", actual.CustomData.First().Key);
            Assert.AreEqual("User", actual.CustomData.First().Value);
        }
예제 #15
0
        public void EntityBuilder_CreateCsdl_Test()
        {
            // Arrange
            Func <string, IEnumerable <KeyValuePair <string, object> > > func = (string s) =>
            {
                return(new[] { new KeyValuePair <string, object>("a", "b") });
            };
            FuncList <string> funcs = new FuncList <string> {
                func
            };

            var entityBuilder = new CsdlBuilderFactory(funcs).CreateEntityBuilder();


            // Act
            var csdl = entityBuilder.Build(typeof(User));

            // Assert
        }