Exemplo n.º 1
0
        public async Task BeAbleToHandlePlainObjectsWithFinalizerAndJoin()
        {
            // {
            //   hero {
            //     id
            //     name
            //     renown
            //     faction
            //   }
            // }
            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("hero", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroFinalized")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Add("renown", queryContext.Locations).Add("faction", queryContext.Locations).Build())
                                                         .Build(), logger);

            //var query = from q in new[] { new GraphQlRoot() }.AsQueryable()
            //            let hero = HandwrittenSamples.Domain.Data.heroes.First()
            //            join reputation in HandwrittenSamples.Domain.Data.heroReputation on hero.Id equals reputation.HeroId
            //            select new Dictionary<string, object?>
            //            {
            //                { "id", hero.Id },
            //                { "name", hero.Name },
            //                { "renown", reputation.Renown },
            //                { "faction", reputation.Faction },
            //            };


            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"hero\":{\"faction\":\"Guardians of the Galaxy\",\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\",\"renown\":5}}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 2
0
        public async Task BeAbleToPassParameters()
        {
            // {
            //   heroes {
            //     id
            //     name
            //     location
            //     oldLocation: location(date: "2008-05-02")
            //   }
            // }

            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp)
                                                                  .Add("id", queryContext.Locations)
                                                                  .Add("name", queryContext.Locations)
                                                                  .Add("location", queryContext.Locations)
                                                                  .Add("oldLocation", "location", queryContext.Locations, new BasicParameterResolver(new Dictionary <string, IGraphQlParameterInfo> {
                { "date", new NewtonsoftJsonParameterInfo("\"2008-05-02\"") }
            }))
                                                                  .Build())
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"heroes\":[{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"GUARDIANS-1\",\"name\":\"Starlord\"},{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"ASGUARD-3\",\"name\":\"Thor\"},{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"AVENGERS-1\",\"name\":\"Captain America\"}]}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 3
0
        public async Task BeAbleToUseTasksToAccessFields()
        {
            // {
            //   heroes {
            //     id
            //     name
            //     friends {
            //       id
            //       name
            //     }
            //   }
            // }

            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp)
                                                                  .Add("id", queryContext.Locations)
                                                                  .Add("name", queryContext.Locations)
                                                                  .Add("friends", queryContext.Locations, hero => ((IGraphQlObjectResult)hero.ResolveQuery("friendsTask")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build())
                                                                  .Build())
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"heroes\":[{\"name\":\"Starlord\",\"friends\":[],\"id\":\"GUARDIANS-1\"},{\"name\":\"Thor\",\"friends\":[{\"name\":\"Captain America\",\"id\":\"AVENGERS-1\"}],\"id\":\"ASGUARD-3\"},{\"name\":\"Captain America\",\"friends\":[{\"name\":\"Thor\",\"id\":\"ASGUARD-3\"}],\"id\":\"AVENGERS-1\"}]}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 4
0
        public async Task BeAbleToRepresentComplexStructures()
        {
            // {
            //   heroes {
            //     id
            //     name
            //     renown
            //     faction
            //   }
            // }

            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp)
                                                                  .Add("id", queryContext.Locations)
                                                                  .Add("name", queryContext.Locations)
                                                                  .Add("renown", queryContext.Locations)
                                                                  .Add("faction", queryContext.Locations)
                                                                  .Build())
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"heroes\":[{\"faction\":\"Guardians of the Galaxy\",\"name\":\"Starlord\",\"renown\":5,\"id\":\"GUARDIANS-1\"},{\"faction\":\"Asgardians\",\"name\":\"Thor\",\"renown\":50,\"id\":\"ASGUARD-3\"},{\"faction\":\"Avengers\",\"name\":\"Captain America\",\"renown\":100,\"id\":\"AVENGERS-1\"}]}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 5
0
        private void Initialize(IOptions <S3Config> options, INetworkDriver networkDriver, ILoggerFactory loggerFactory)
        {
            Assembly assembly = typeof(S3Config).Assembly;

            SimpleServiceProvider provider = new SimpleServiceProvider(new Tuple <Type, object>(typeof(IOptions <S3Config>), options));

            IEnumerable <IValidator>       validators       = CreateInstances <IValidator>(assembly, provider);
            IEnumerable <IRequestMarshal>  requestMarshals  = CreateInstances <IRequestMarshal>(assembly, provider);
            IEnumerable <IResponseMarshal> responseMarshals = CreateInstances <IResponseMarshal>(assembly, provider);

            ValidatorFactory      validatorFactory     = new ValidatorFactory(validators);
            IMarshalFactory       marshalFactory       = new MarshalFactory(requestMarshals, responseMarshals);
            IScopeBuilder         scopeBuilder         = new ScopeBuilder(options);
            ISigningKeyBuilder    signingKeyBuilder    = new SigningKeyBuilder(options, loggerFactory.CreateLogger <SigningKeyBuilder>());
            ISignatureBuilder     signatureBuilder     = new SignatureBuilder(signingKeyBuilder, scopeBuilder, loggerFactory.CreateLogger <SignatureBuilder>(), options);
            IAuthorizationBuilder authorizationBuilder = new AuthorizationHeaderBuilder(options, scopeBuilder, signatureBuilder, loggerFactory.CreateLogger <AuthorizationHeaderBuilder>());
            DefaultRequestHandler requestHandler       = new DefaultRequestHandler(options, validatorFactory, marshalFactory, networkDriver, authorizationBuilder, Enumerable.Empty <IRequestStreamWrapper>(), loggerFactory.CreateLogger <DefaultRequestHandler>());

            ObjectOperations objectOperations = new ObjectOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>());

            _objectClient = new S3ObjectClient(objectOperations);

            BucketOperations bucketOperations = new BucketOperations(requestHandler);

            _bucketClient = new S3BucketClient(bucketOperations);

            MultipartOperations multipartOperations = new MultipartOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>());

            _multipartClient = new S3MultipartClient(multipartOperations, objectOperations);

            Transfer = new Transfer(objectOperations, multipartOperations);
        }
Exemplo n.º 6
0
        public IServiceProvider CreateProvider()
        {
            var provider = new SimpleServiceProvider();

            provider.AddTransient(typeof(UnitTestData), (s) => { return(new UnitTestData()); });

            return(provider);
        }
Exemplo n.º 7
0
 static FlexServiceProvider()
 {
     concreteServices = new SimpleServiceProvider();
     var extendedFileService = new ExtendedFileService();
     concreteServices.AddService<IExtendedFileService>(extendedFileService);
     concreteServices.AddService<IFileService>(new FileService(extendedFileService));
     concreteServices.AddService<IConsoleService>(new ConcreteConsoleService());
     concreteServices.AddService<IConfigurationManager>(new ConfigurationManager());
 }
Exemplo n.º 8
0
        public void 呼び出し確認()
        {
            dynamic cons = new SimpleServiceConsumer("test");
            var prov = new SimpleServiceProvider("test");

            prov.RegisterMethod("Test", (double i) => i * i);

            var dummy = prov.AdapterForTest;

            cons.SetDummy((MarshalByRefObject)dummy);

            double ret = cons.Test(10);
            ret.Is(100);
        }
Exemplo n.º 9
0
        public async Task BeAbleToRepresentScalars()
        {
            // {
            //   rand
            // }
            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("rand", queryContext.Locations)
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"rand\":5}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 10
0
        public async Task BeAbleToHandlePlainObjects()
        {
            // {
            //   hero {
            //     id
            //     name
            //   }
            // }
            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("hero", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("hero")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build())
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"hero\":{\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\"}}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 11
0
        public async Task BeAbleToHandleFirstLevelmplementationJoin()
        {
            // {
            //   heroById(id: "GUARDIANS-1") {
            //     id
            //     name
            //   }
            // }
            using var sp = new SimpleServiceProvider();
            var queryContext = FieldContext.Empty;
            var result       = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root =>
                                                         root.Add("heroById", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroById", new BasicParameterResolver(new Dictionary <string, IGraphQlParameterInfo>()
            {
                { "id", new NewtonsoftJsonParameterInfo("\"GUARDIANS-1\"") }
            }))).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build())
                                                         .Build(), logger);

            var json     = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions);
            var expected = "{\"heroById\":{\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\"}}";

            Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected)));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Executes when the user navigates to this page.
        /// </summary>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            this.meetingContext.Load(this.meetingContext.GetLocationsQuery().Where(l => l.LocationName.StartsWith("18/")));

            Meeting meeting = new Meeting
            {
                Title            = "Waste Your Day!",
                Start            = DateTime.Today.AddDays(2).AddHours(14),
                End              = DateTime.Today.AddDays(2).AddHours(15),
                Location         = "18/3002",
                MinimumAttendees = 5,
                MaximumAttendees = 10,
                Details          = "This meeting will cost the company a fortune!"
            };

            var contextItems = new Dictionary <object, object>
            {
                { "AllowOverBooking", this.allowOverBooking.IsChecked ?? false }
            };

            var contextServiceProvider = new SimpleServiceProvider();

            contextServiceProvider.AddService <IMeetingDataProvider>(this.meetingContext);

            this.meetingContext.ValidationContext = new ValidationContext(
                this.meetingContext, contextServiceProvider, contextItems);

            this.meetingContext.Meetings.Add(meeting);
            ((IEditableObject)meeting).BeginEdit();

            this.LayoutRoot.DataContext = meeting;

            this.meetingDataGrid.ItemsSource = new List <Meeting> {
                meeting
            };
            this.meetingDataForm.CurrentItem = meeting;
        }
Exemplo n.º 13
0
        public IServiceProvider CreateProvider()
        {
            var provider = new SimpleServiceProvider();

            return(provider);
        }
Exemplo n.º 14
0
 private static IGraphQlExecutor CreateExecutor()
 {
     using var serviceProvider = new SimpleServiceProvider();
     return(new GraphQlExecutor(serviceProvider, new AbstractSyntaxTreeGenerator(), new GraphQlExecutionOptions(), new LoggerFactory()));
 }