Esempio n. 1
0
        public void Init(Action<OdcmModel> config = null, bool generateMocks = false)
        {
            Model = new OdcmModel(Any.ServiceMetadata());

            Namespace = Any.EmptyOdcmNamespace();

            Model.Namespaces.Add(Namespace);

            Class = Any.OdcmEntityClass(Namespace);

            Model.AddType(Class);

            OdcmContainer = Any.ServiceOdcmClass(Namespace);

            Model.AddType(OdcmContainer);

            if (config != null) config(Model);

            Model.ServiceMetadata["$metadata"] = Model.ToEdmx(true);

            Proxy = GetProxy(Model, ConfigurationProvider, generateMocks ? new[] { "DynamicProxyGenAssembly2" } : null);

            ConcreteType = Proxy.GetClass(Class.Namespace, Class.Name);

            ConcreteInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name);

            FetcherType = Proxy.GetClass(Class.Namespace, Class.Name + "Fetcher");

            FetcherInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name + "Fetcher");

            CollectionType = Proxy.GetClass(Class.Namespace, Class.Name + "Collection");

            CollectionInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name + "Collection");

            EntityContainerType = Proxy.GetClass(Model.EntityContainer.Namespace, Model.EntityContainer.Name);

            EntityContainerInterface = Proxy.GetInterface(Model.EntityContainer.Namespace, "I" + Model.EntityContainer.Name);

            TargetEntity = new EntityArtifacts()
            {
                Class = Class,
                ConcreteType = ConcreteType,
                ConcreteInterface = ConcreteInterface,
                FetcherType = FetcherType,
                FetcherInterface = FetcherInterface,
                CollectionType = CollectionType,
                CollectionInterface = CollectionInterface
            };
        }
        public Given_an_OdcmClass_Complex()
        {
            _model = new OdcmModel(Any.ServiceMetadata());

            _namespace = Any.EmptyOdcmNamespace();

            _model.Namespaces.Add(_namespace);

            _class = Any.OdcmComplexClass(e => e.Namespace = _namespace);

            _model.AddType(_class);

            _proxy = GetProxy(_model);

            _classType = _proxy.GetClass(_class.Namespace, _class.Name);
        }
        private void CreateProxyWithPropertyType(string type)
        {
            _property.Type = new OdcmPrimitiveType(type, OdcmNamespace.Edm);

            _proxy = GetProxy(_model);

            _classType = _proxy.GetClass(_class.Namespace, _class.Name);
        }
        public void When_the_property_is_Enum_it_is_NOT_exposed_as_Nullable()
        {
            var @enum = Any.OdcmEnum(e => e.Namespace = _namespace);
            _model.AddType(@enum);
            _property.Type = @enum;
            _proxy = GetProxy(_model);
            _classType = _proxy.GetClass(_class.Namespace, _class.Name);
            var _enumType = _proxy.GetEnum(@enum.Namespace, @enum.Name);

            _classType.GetProperty(_property.Name, PermissiveBindingFlags).PropertyType.Name
                .Should().Be(_enumType.Name);

            _classType.GetProperty(_property.Name, PermissiveBindingFlags).PropertyType.Namespace
                .Should().Be(_enumType.Namespace);
        }
Esempio n. 5
0
        public static EntityArtifacts GetArtifactsFrom(this OdcmEntityClass Class, Assembly Proxy)
        {
            var retVal = new EntityArtifacts
            {
                Class = Class,
                ConcreteType = Proxy.GetClass(Class.Namespace, Class.Name),
                ConcreteInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name),
                FetcherType = Proxy.GetClass(Class.Namespace, Class.Name + "Fetcher"),
                FetcherInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name + "Fetcher"),
                CollectionType = Proxy.GetClass(Class.Namespace, Class.Name + "Collection"),
                CollectionInterface = Proxy.GetInterface(Class.Namespace, "I" + Class.Name + "Collection")
            };

            return retVal;
        }