Ejemplo n.º 1
0
 public SchemeControllerSpec()
 {
     this.testQueuer = Substitute.For <IRequestQueuer <SCHEMES_QUEUE_CONFIG> >();
     this.testServer = new TestServer(new WebHostBuilder()
                                      .ConfigureServices(x => x.AddAutofac())
                                      .ConfigureTestServices(services => services
                                                             .AddSingleton <IRequestQueuer <SCHEMES_QUEUE_CONFIG> >(this.testQueuer))
                                      .UseSetting(nameof(SCHEMES_QUEUE_CONFIG), JsonConvert.SerializeObject(
                                                      new SCHEMES_QUEUE_CONFIG
     {
         TopicName        = "test",
         ProducerSettings = new Dictionary <string, object>
         {
             ["bootstrap.servers"] = "test:123"
         }
     }))
                                      .UseSetting(nameof(CorsConfig.ALLOWED_ORIGINS), JsonConvert.SerializeObject(new CorsConfig
     {
         ALLOWED_ORIGINS = "localhost"
     }))
                                      .UseStartup <StartupStub>());
     this.testClient = this.testServer.CreateClient();
     this.testClient.DefaultRequestHeaders.Add("api-version", "1.0");
     this.testClient.DefaultRequestHeaders.Add("schema-version", SchemaVersion.Latest.ToString());
 }
Ejemplo n.º 2
0
 public LikesController(
     ILogger <LikesController> logger,
     IRequestQueuer <LIKES_QUEUE_CONFIG> requestQueuer)
 {
     this.logger        = logger;
     this.requestQueuer = requestQueuer;
 }
 public FavoritesController(
     ILogger <FavoritesController> logger,
     IRequestQueuer <FAVORITES_QUEUE_CONFIG> requestQueuer)
 {
     this.logger        = logger;
     this.requestQueuer = requestQueuer;
 }
Ejemplo n.º 4
0
 public SchemeController(
     ILogger <SchemeController> logger,
     IRequestQueuer <SCHEMES_QUEUE_CONFIG> requestQueuer)
 {
     this.logger        = logger;
     this.requestQueuer = requestQueuer;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultDiscordRequestHandler"/> class.
 /// </summary>
 /// <param name="serializer">Serializer used to serialize/deserialize data between formats.</param>
 /// <param name="responseService">Service that listens for responses to requests.</param>
 /// <param name="queuer">Service used to queue requests.</param>
 /// <param name="tracing">Service for tracing requests across microservices.</param>
 /// <param name="logger">Logger used for logging info to some destination(s).</param>
 public DefaultDiscordRequestHandler(
     ISerializer serializer,
     IResponseService responseService,
     IRequestQueuer queuer,
     ITracingService tracing,
     ILogger <DefaultDiscordRequestHandler> logger
     )
 {
     this.serializer      = serializer;
     this.responseService = responseService;
     this.queuer          = queuer;
     this.tracing         = tracing;
     this.logger          = logger;
 }
            public async Task ShouldQueueARequestWithNoResponseURL(
                Snowflake recipientId,
                Endpoint endpoint,
                object request,
                Dictionary <string, string> parameters,
                Dictionary <string, string> headers,
                [Frozen, Substitute] IResponseService server,
                [Frozen, Substitute] IRequestQueuer queuer,
                [Target] DefaultDiscordRequestHandler handler,
                CancellationToken cancellationToken
                )
            {
                await handler.Handle(endpoint, request, parameters, headers, cancellationToken);

                await queuer.Received().QueueRequest(Is <Request>(req => req.ResponseURL == null), Is(cancellationToken));
            }
            public async Task ShouldQueueARequestWithTheParameters(
                Snowflake recipientId,
                Endpoint endpoint,
                object request,
                Dictionary <string, string> parameters,
                Dictionary <string, string> headers,
                [Frozen, Substitute] IResponseService server,
                [Frozen, Substitute] IRequestQueuer queuer,
                [Target] DefaultDiscordRequestHandler handler,
                CancellationToken cancellationToken
                )
            {
                await handler.Handle(endpoint, request, parameters, headers, cancellationToken);

                await queuer.Received().QueueRequest(Any <Request>(), Is(cancellationToken));

                var receivedRequest = TestUtils.GetArg <Request>(queuer, nameof(IRequestQueuer.QueueRequest), 0);

                receivedRequest.Parameters.Should().BeEquivalentTo(parameters);
            }
            public async Task ShouldQueueARequestWithTheSerializedBody(
                Snowflake recipientId,
                Endpoint endpoint,
                object request,
                string body,
                Dictionary <string, string> parameters,
                Dictionary <string, string> headers,
                [Frozen, Substitute] ISerializer serializer,
                [Frozen, Substitute] IResponseService server,
                [Frozen, Substitute] IRequestQueuer queuer,
                [Target] DefaultDiscordRequestHandler handler,
                CancellationToken cancellationToken
                )
            {
                serializer.Serialize(Any <object>()).Returns(body);
                await handler.Handle <object, object>(endpoint, request, parameters, headers, cancellationToken);

                await queuer.Received().QueueRequest(Any <Request>(), Is(cancellationToken));

                var receivedRequest = TestUtils.GetArg <Request>(queuer, nameof(IRequestQueuer.QueueRequest), 0);

                receivedRequest.RequestBody.Should().Be(body);
            }