Exemplo n.º 1
0
        public void Init(Action <OdcmModel> config)
        {
            base.Init(config);

            NavTargetConcreteType = Proxy.GetClass(NavTargetClass.Namespace, NavTargetClass.Name);

            NavTargetConcreteInterface = Proxy.GetInterface(NavTargetClass.Namespace, "I" + NavTargetClass.Name);

            NavTargetFetcherType = Proxy.GetClass(NavTargetClass.Namespace, NavTargetClass.Name + "Fetcher");

            var identifier = NamesService.GetFetcherInterfaceName(NavTargetClass);

            NavTargetFetcherInterface = Proxy.GetInterface(NavTargetClass.Namespace, identifier.Name);

            NavTargetCollectionType = Proxy.GetClass(NavTargetClass.Namespace, NavTargetClass.Name + "Collection");

            identifier = NamesService.GetCollectionInterfaceName(NavTargetClass);
            NavTargetCollectionInterface = Proxy.GetInterface(NavTargetClass.Namespace, identifier.Name);

            NavTargetEntity = new EntityArtifacts()
            {
                Class               = NavTargetClass,
                ConcreteType        = NavTargetConcreteType,
                ConcreteInterface   = NavTargetConcreteInterface,
                FetcherType         = NavTargetFetcherType,
                FetcherInterface    = NavTargetFetcherInterface,
                CollectionType      = NavTargetCollectionType,
                CollectionInterface = NavTargetCollectionInterface
            };
        }
Exemplo n.º 2
0
        public static MockService SetupPostEntity(this MockService mockService, EntityArtifacts targetEntity, IEnumerable <Tuple <string, object> > propertyValues = null)
        {
            propertyValues = propertyValues ?? targetEntity.Class.GetSampleKeyArguments();

            return(mockService
                   .OnPostEntityRequest(targetEntity.Class.GetDefaultEntitySetPath())
                   .RespondWithCreateEntity(targetEntity.Class.GetDefaultEntitySetName(), targetEntity.Class.GetSampleJObject(propertyValues)));
        }
Exemplo n.º 3
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");

            var identifier = NamesService.GetFetcherInterfaceName(Class);

            FetcherInterface = Proxy.GetInterface(Class.Namespace, identifier.Name);

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

            identifier          = NamesService.GetCollectionInterfaceName(Class);
            CollectionInterface = Proxy.GetInterface(Class.Namespace, identifier.Name);

            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
            };
        }
Exemplo n.º 4
0
        public static MockService SetupGetEntitySet(this MockService mockService, EntityArtifacts targetEntity,
                                                    IEnumerable <string> expandTargets = null)
        {
            var responseBuilder = expandTargets == null
                ? mockService.OnGetEntityRequest(targetEntity.Class.GetDefaultEntitySetPath())
                : mockService.OnGetEntityWithExpandRequest(targetEntity.Class.GetDefaultEntitySetPath(), expandTargets);

            return(responseBuilder
                   .RespondWithGetEntity(targetEntity.Class.GetDefaultEntitySetName(),
                                         targetEntity.Class.GetSampleJObject(targetEntity.Class.GetSampleKeyArguments())));
        }
Exemplo 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);
        }
Exemplo n.º 6
0
        public static void ValidateParameterPassing(this MockService mockService, string httpMethod, object instance, string instancePath, OdcmMethod method, EntityArtifacts entityArtifacts)
        {
            var expectedMethodName = method.Name + "Async";

            var methodArguments = method.GetSampleArguments().ToArray();
            var uriArguments    = method.UriParameters()
                                  .Select(p => methodArguments.First(a => a.Item1 == p.Name));
            var bodyArguments = method.BodyParameters()
                                .Select(p => methodArguments.First(a => a.Item1 == p.Name));

            var responseBuilder = mockService
                                  .OnInvokeMethodRequest(httpMethod,
                                                         instancePath + "/" + method.FullName,
                                                         uriArguments.ToTestReadableStringCollection(),
                                                         ArgumentOfTupleExtensions.ToJObject(bodyArguments));

            if (entityArtifacts == null)
            {
                responseBuilder.RespondWith(r => r.Response.StatusCode = 200);
            }
            else
            {
                responseBuilder.RespondWithGetEntity(entityArtifacts.Class.GetDefaultEntitySetName(),
                                                     entityArtifacts.Class.GetSampleJObject());
            }

            instance.InvokeMethod <Task>(expectedMethodName, methodArguments.Select(t => t.Item2).ToArray())
            .Wait();
        }
Exemplo n.º 7
0
 public static MockService SetupGetEntityProperty(this MockService mockService, EntityArtifacts targetEntity, IEnumerable <Tuple <string, object> > keyValues, OdcmProperty property)
 {
     return(mockService
            .OnGetEntityPropertyRequest(targetEntity.Class.GetDefaultEntityPath(keyValues), property.Name)
            .RespondWithGetEntity(targetEntity.Class.GetDefaultEntitySetName(),
                                  targetEntity.Class.GetSampleJObject()));
 }
Exemplo n.º 8
0
 public static MockService SetupPostEntityPropertyChanges(this MockService mockService, EntityArtifacts targetEntity, IEnumerable <Tuple <string, object> > keyValues, OdcmProperty property)
 {
     return(mockService
            .OnPostEntityRequest(targetEntity.Class.GetDefaultEntityPropertyPath(property, keyValues))
            .RespondWithODataOk());
 }