コード例 #1
0
        public async Task IntegrationTestUploadLatestLogs()
        {
            var logEventSource = new LogBurstPlayer(new SavedGamesDirectoryHelper().Directory, 5);
            var logCounter = new LogEventTypeCounter();
            var stateRecorder = new PlayerStateRecorder();

            var inaraRestClient = new ThrottlingRestClient("https://inara.cz/inapi/v1/");
            var inaraConverter = new InaraEventConverter(stateRecorder);
            var inaraApiFacade = new InaraApiFacade(inaraRestClient, TestCredentials.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 => e.EventStatusText != "There is a newer inventory state recorded already.")
                .Where(e => e.EventStatusText != "This ship was not found but was added automatically.")
                .ToList();

            CollectionAssert.IsEmpty(results);
            Assert.Pass("Uploaded {0} events", convertedEvents.Length);
        }
コード例 #2
0
        public async Task IntegrationTestUploadToInara()
        {
            var logEventSource = new JournalBurstPlayer(new SavedGamesDirectoryHelper().Directory, 5);
            var logCounter     = new JournalEventTypeCounter();
            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.UserName, TestCredentials.Inara.ApiKey, null);

            // 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);
        }
コード例 #3
0
 public InaraEventConverterTests()
 {
     eventConverter = new InaraEventConverter(stateRecorder);
 }