public async Task IntegrationTestUploadToInara()
        {
            var logEventSource = new LogBurstPlayer(new SavedGamesDirectoryHelper().Directory, 5);
            var logCounter     = new LogEventTypeCounter();
            var stateRecorder  = new PlayerStateRecorder();

            var inaraRestClient = new ThrottlingRestClient.Factory().CreateRestClient("https://inara.cz/inapi/v1/");
            var inaraConverter  = new InaraEventConverter(stateRecorder);
            var inaraApiFacade  = new InaraApiFacade(inaraRestClient, TestCredentials.Inara.ApiKey, TestCredentials.UserName);

            // Populate the state recorder to avoid missing ships/starsystems data
            foreach (var ev in logEventSource.Events)
            {
                stateRecorder.OnNext(ev);
            }

            var convertedEvents = logEventSource
                                  .Events
                                  .SelectMany(inaraConverter.Convert)
                                  .ToArray();

            var results = await inaraApiFacade.ApiCall(convertedEvents);

            results = results
                      .Where(e => e.EventStatus != 200)
                      .Where(e => !ignoredErrors.Contains(e.EventStatusText))
                      .ToList();

            CollectionAssert.IsEmpty(results);
            Assert.Pass("Uploaded {0} events", convertedEvents.Length);
        }
Beispiel #2
0
        public async Task IntegrationTestUploadToEddn()
        {
            var restClient = new ThrottlingRestClient.Factory().CreateRestClient("https://eddn.edcd.io:4430/upload/");
            var facade     = new EddnApiFacade(restClient);
            var @event     = new TestEddnEvent();

            @event.Header = new Dictionary <string, string>
            {
                { "uploaderID", TestCredentials.UserName },
                { "softwareName", AppInfo.Name },
                { "softwareVersion", AppInfo.Version }
            };
            var message = @event.Message;

            message.Add("timestamp", DateTime.UtcNow);
            message.Add("event", "FSDJump");
            message.Add("StarSystem", "Sol");
            message.Add("SystemAddress", 12345678901234567890);
            message.Add("StarPos", new JArray(new[] { 0, 0, 0 }));

            Assert.IsTrue(new EventSchemaValidator().ValidateSchema(@event));
            await facade.PostEventAsync(@event);
        }