Пример #1
0
        public void TimeSeriesMultiMultiCsvTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}");
            Thread.Sleep(100);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"A\": 345}");
            ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 125, \"B\": 567}");
            Thread.Sleep(100);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 126, \"B\": 678}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var record = reportingClient.Network.GetTimeSeriesReportCsv(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n"));
            Assert.IsTrue(record.Contains("d1"));
            Assert.IsTrue(record.Contains("d2"));
            Assert.IsTrue(record.Contains(_deviceId1));
            Assert.IsTrue(record.Contains(_deviceId2));
            Assert.IsTrue(record.Contains("123,234,\r\n") || record.Contains("123,,234\r\n"));
            Assert.IsTrue(record.Contains("124,345,\r\n") || record.Contains("124,,345\r\n"));
            Assert.IsTrue(record.Contains("125,,567\r\n") || record.Contains("125,567,\r\n"));
            Assert.IsTrue(record.Contains("126,,678\r\n") || record.Contains("126,678,\r\n"));
        }
        public async Task <ReportViewModel> Handle(GenerateReportCommand request, CancellationToken cancellationToken)
        {
            IReportingContract reportingClient = ReportingClient.CreateClient();

            try
            {
                Logger.LogInformation("[ReportCommandHandler::GenerateReport] Sending a Generate command to Outage service.");

                var options = new ReportOptions
                {
                    Type      = (ReportType)request.Options.Type,
                    ElementId = request.Options.ElementId,
                    StartDate = request.Options.StartDate,
                    EndDate   = request.Options.EndDate
                };

                var report = await reportingClient.GenerateReport(options);

                return(new ReportViewModel
                {
                    Data = report.Data,
                    Type = report.Type
                });
            }
            catch (Exception ex)
            {
                Logger.LogError("[ReportCommandHandler::GenerateReport] Failed to generate active outages from Outage service.", ex);
                throw ex;
            }
        }
Пример #3
0
        public void TimeSeriesSingleTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, _deviceKey);

            var sinks = reportingClient.Device.GetSinks();

            var onerecord = reportingClient.Device.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.AreEqual(1, onerecord.Devices.Count);
            var device = onerecord.Devices[0];

            Assert.AreEqual(_deviceId, device.DeviceId);
            Assert.AreEqual("árvíztűrő tükörfúrógép", device.Name);
            Assert.AreEqual(1, device.Data.Count);
            var data = device.Data[0];

            Assert.AreEqual("{\"Fld\":123}", data.Payload);
            Assert.IsTrue(data.Timestamp > 1000000);
        }
Пример #4
0
        public void CurrentDataSingleTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}");
            ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var onerecord = reportingClient.Network.GetCurrentData(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName);

            Assert.AreEqual(2, onerecord.Devices.Count);
            var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1);

            Assert.AreEqual(_deviceId1, device.DeviceId);
            Assert.AreEqual("d1", device.Name);
            Assert.AreEqual("{\"Fld\":123}", device.Payload);
            Assert.IsTrue(device.Timestamp > 1000000);

            device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2);
            Assert.AreEqual(_deviceId2, device.DeviceId);
            Assert.AreEqual("d2", device.Name);
            Assert.AreEqual("{\"Fld\":124}", device.Payload);
            Assert.IsTrue(device.Timestamp > 1000000);
        }
Пример #5
0
        public void TimeSeriesMultiTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}");
            Thread.Sleep(100);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var onerecord = reportingClient.Network.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.AreEqual(2, onerecord.Devices.Count);
            var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1);

            Assert.AreEqual(_deviceId1, device.DeviceId);
            Assert.AreEqual("d1", device.Name);
            Assert.AreEqual(2, device.Data.Count);
            var data = device.Data[0];

            Assert.AreEqual("{\"Fld\":123}", data.Payload);
            Assert.IsTrue(data.Timestamp > 1000000);
            data = device.Data[1];
            Assert.AreEqual("{\"Fld\":124}", data.Payload);
            Assert.IsTrue(data.Timestamp > 1000000);

            device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2);
            Assert.AreEqual(0, device.Data.Count);
        }
Пример #6
0
        public void GetSinksNotAuthTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, "asdfasdf");

            reportingClient.Device.GetSinks();
        }
Пример #7
0
        public void GetSinksNotAuthTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, "asdfasdf");

            reportingClient.Network.GetSinks();
        }
Пример #8
0
 public void TestSetup()
 {
     // api client defaults to production uri.
     _reportingClient = new ReportingClient
                            ("http://das-prd-apprenticeshipinfoservice.cloudapp.net/",
                            "https://dasapi.coursedirectoryproviderportal.org.uk/dasapi/bulk/providers",
                            "https://roatp.apprenticeships.sfa.bis.gov.uk/api");
 }
Пример #9
0
        public void GetSinksTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, _deviceKey);

            var sinks = reportingClient.Device.GetSinks();

            Assert.AreEqual(2, sinks.Count());
        }
Пример #10
0
        public void GetSinksTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            Assert.AreEqual(2, sinks.Count());
        }
Пример #11
0
        public void TimeSeriesAuthErrorTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, "1234");

            reportingClient.Device.GetTimeSeriesReport("nomatter", DateTime.UtcNow);
        }
Пример #12
0
        private GraphApiClient(string tenant, IAuthProvider authProvider)
        {
            if (string.IsNullOrWhiteSpace(tenant))
            {
                throw new ArgumentNullException(nameof(tenant));
            }

            _authProvider = authProvider;
            Tenant        = tenant;
            BaseUrl       = GraphLiteConfiguration.TenantGraphApiBaseUrl(Tenant);
            Reporting     = new ReportingClient(this);
        }
Пример #13
0
        public void CurrentDataNoDataTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var onerecord = reportingClient.Network.GetCurrentData(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName);

            Assert.AreEqual(0, onerecord.Devices.Count);
        }
Пример #14
0
        public void CurrentDataAuthErrorTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, "1234");

            reportingClient.Network.GetCurrentData("nomatter");
        }
Пример #15
0
        internal async void AddClient(int id, string url)
        {
            if (_clients.ContainsKey(id))
            {
                var client = _clients[id];
                if (client.BindAddress == url)
                {
                    return;
                }

                _clients.Remove(id);
            }

            var reportingClient = new ReportingClient()
            {
                BindAddress = url,
                UniqueId    = id
            };

            try
            {
                var httpClient = new HttpClient();
                var version    = await httpClient.GetStringAsync(reportingClient.VersionUrl);

                httpClient.Dispose();

                if (String.IsNullOrEmpty(version))
                {
                    throw new Exception("Invalid version");
                }

                if (!Version.TryParse(version, out var parsedVersion))
                {
                    throw new Exception("Invalid version");
                }

                reportingClient.Version = parsedVersion;
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Failed to add [{id}]{url}");
                Console.WriteLine(ex);

                return;
            }

            _clients.Add(id, reportingClient);

            Console.WriteLine($"Added [{id}]{url} in version {reportingClient.Version} to monitoring");
        }
Пример #16
0
        public void ShouldNothave0duration()
        {
            _preProdreportingClient = new ReportingClient(baseUri: "");
            var frameworks = _preProdreportingClient.GetAllApprenticeshipFrameworks();
            var standards  = _preProdreportingClient.GetAllApprenticeshipStandards();

            Assert.Multiple(() =>
            {
                Assert.AreEqual(0, frameworks.Where(x => x.Duration == 0).Count(), string.Join(Environment.NewLine, frameworks.Where(x => x.Duration == 0).Select(y => $"{y.Id} has 0 duration")));
                Assert.AreEqual(0, frameworks.Where(x => x.MaxFunding == 0).Count(), string.Join(Environment.NewLine, frameworks.Where(x => x.MaxFunding == 0).Select(y => $"{y.Id} has 0 funding")));
                Assert.AreEqual(0, standards.Where(x => x.Duration == 0).Count(), string.Join(Environment.NewLine, standards.Where(x => x.Duration == 0).Select(y => $"{y.Id} has 0 duration")));
                Assert.AreEqual(0, standards.Where(x => x.MaxFunding == 0).Count(), string.Join(Environment.NewLine, standards.Where(x => x.MaxFunding == 0).Select(y => $"{y.Id} has 0 funding")));
            });
        }
        public async Task ReportingClient_GetPlayerScores_ReportDataReturned()
        {
            // 1. Arrange
            HttpClient            client          = this.WebApplicationFactory.AddPlayer().CreateClient();
            Func <String, String> resolver        = api => "http://localhost";
            IReportingClient      reportingClient = new ReportingClient(resolver, client);

            String token =
                "eyJhbGciOiJSUzI1NiIsImtpZCI6ImVhZDQyNGJjNjI5MzU0NGM4MGFmZThhMDk2MzEyNjU2IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NzAyODk3MDksImV4cCI6MTU3MDI5MzMwOSwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMS4xMzI6NTAwMSIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjEzMjo1MDAxL3Jlc291cmNlcyIsIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl0sImNsaWVudF9pZCI6ImdvbGZoYW5kaWNhcC50ZXN0ZGF0YWdlbmVyYXRvciIsInNjb3BlIjpbIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl19.vLfs2bOMXshW93nw5TTOqd6NPGNYpcrhcom8yZoYc9WGSuYH48VqM5BdbodEukNNJmgbV9wUVgoj1uGztlFfHGFA_q6IQfd3xZln_LIxju6ZNZs8qUyRXDTGxu0dlfF8STLfBUq469SsY9eNi1hBYFyNxl963OfKqDSHAdeBg9yNlwnbky1Tnsxobu9W33fLcjH0KoutlwTFV51UFUEKCBk0w1zsjaDVZacETn74t56y0CvMS7ZSN2_yyunq4JvoUsh3xM5lQ-gl23eQyo6l4QE4wukCS7U_Zr2dg8-EF63VKiCH-ZD49M76TD9kIIge-XIgHqa2Xf3S-FpLxXfEqw";

            // 2. Act
            GetPlayerScoresResponse getPlayerScores =
                await reportingClient.GetPlayerScores(token, TestData.PlayerId, 10, CancellationToken.None);

            // 3. Assert
            getPlayerScores.Scores.ShouldNotBeEmpty();
        }
Пример #18
0
        public void TimeSeriesNoDataTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, _deviceKey);

            var sinks = reportingClient.Device.GetSinks();

            var onerecord = reportingClient.Device.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.AreEqual(1, onerecord.Devices.Count);
            var device = onerecord.Devices[0];

            Assert.AreEqual(_deviceId, device.DeviceId);
            Assert.AreEqual("árvíztűrő tükörfúrógép", device.Name);
            Assert.AreEqual(0, device.Data.Count);
        }
Пример #19
0
        public TabModule() : base("/tab")
        {
            Get["{id:int}"] = parameters =>
            {
                var tabId = (int)parameters.Id;
                Program.Service.BroadcastRequest(ReportingClient.GetTabUrl(tabId));
                return(200);
            };

            Get["{id:int}/{client:int}"] = parameters =>
            {
                var tabId  = (int)parameters.id;
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetTabUrl(tabId));
                return(200);
            };

            Get["next"] = _ =>
            {
                Program.Service.BroadcastRequest(ReportingClient.GetTabNextUrl());
                return(200);
            };

            Get["next/{client:int}"] = parameters =>
            {
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetTabNextUrl());
                return(200);
            };

            Get["prev"] = _ =>
            {
                Program.Service.BroadcastRequest(ReportingClient.GetTabPreviousUrl());
                return(200);
            };

            Get["prev/{client:int}"] = parameters =>
            {
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetTabPreviousUrl());
                return(200);
            };
        }
Пример #20
0
        public void CurrentDataSingleCsvDataWithCommaTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"F,ld\": \"12,3\"}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, _deviceKey);

            var sinks = reportingClient.Device.GetSinks();

            var record = reportingClient.Device.GetCurrentDataCsv(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName);

            Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,\"F,ld\"\r\n"));
            Assert.IsTrue(record.Contains("árvíztűrő"));
            Assert.IsTrue(record.Contains(_deviceId));
            Assert.IsTrue(record.Contains("\"12,3\"\r\n"));
        }
Пример #21
0
 internal void Request(ReportingClient client, string request)
 {
     try
     {
         var httpClient = new HttpClient();
         httpClient.SendAsync(new HttpRequestMessage()
         {
             Method     = HttpMethod.Get,
             RequestUri = new Uri($"{client.FQDN}/{request}")
         }).ContinueWith(delegate(Task <HttpResponseMessage> response)
         {
             httpClient.Dispose();
         });
     }
     catch (Exception ex)
     {
         Console.WriteLine($"Failed to send request to {client.UniqueId}");
         Console.WriteLine(ex);
     }
 }
        /// <summary>
        /// Create a new instance of the GroupShare API v1 client using the specified connection.
        /// </summary>
        /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param>
        public GroupShareClient(IConnection connection)
        {
            Ensure.ArgumentNotNull(connection, "connection");

            Connection = connection;
            var apiConnection = new ApiConnection(connection);

            Project              = new ProjectClient(apiConnection);
            User                 = new UserClient(apiConnection);
            Organization         = new OrganizationClient(apiConnection);
            Authenticate         = new AuthenticateClient(apiConnection);
            Role                 = new RoleClient(apiConnection);
            Permission           = new PermissionClient(apiConnection);
            ModuleClient         = new ModuleClient(apiConnection);
            License              = new LicenseClient(apiConnection);
            TranslationMemories  = new TranslationMemoriesClient(apiConnection);
            Terminology          = new TerminologyClient(apiConnection);
            TranslateAndAnalysis = new TranslateAndAnalysisClient(apiConnection);
            Reporting            = new ReportingClient(apiConnection);
        }
Пример #23
0
        public WindowModule() : base("/window")
        {
            Get["enableFullscreen"] = _ =>
            {
                Program.Service.BroadcastRequest(ReportingClient.GetEnableFullscreenUrl());
                return(200);
            };

            Get["enableFullscreen/{client:int}"] = parameters =>
            {
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetEnableFullscreenUrl());
                return(200);
            };

            Get["disableFullscreen"] = _ =>
            {
                Program.Service.BroadcastRequest(ReportingClient.GetDisableFullscreenUrl());
                return(200);
            };

            Get["disableFullscreen/{client:int}"] = parameters =>
            {
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetDisableFullscreenUrl());
                return(200);
            };

            Get["toggleFullscreen"] = _ =>
            {
                Program.Service.BroadcastRequest(ReportingClient.GetToggleFullscreenUrl());
                return(200);
            };

            Get["toggleFullscreen/{client:int}"] = parameters =>
            {
                var client = (int)parameters.client;
                Program.Service.Request(client, ReportingClient.GetToggleFullscreenUrl());
                return(200);
            };
        }
Пример #24
0
        public void TimeSeriesNoDataTest()
        {
            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var onerecord = reportingClient.Network.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.AreEqual(2, onerecord.Devices.Count);
            var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1);

            Assert.AreEqual(_deviceId1, device.DeviceId);
            Assert.AreEqual("d1", device.Name);
            Assert.AreEqual(0, device.Data.Count);
            device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2);
            Assert.AreEqual(_deviceId2, device.DeviceId);
            Assert.AreEqual("d2", device.Name);
            Assert.AreEqual(0, device.Data.Count);
        }
Пример #25
0
        public void TimeSeriesMultiCsvTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}");
            Thread.Sleep(100);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"B\": 456}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Device.SetDevice(_deviceId, _deviceKey);

            var sinks = reportingClient.Device.GetSinks();

            var record = reportingClient.Device.GetTimeSeriesReportCsv(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow);

            Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n"));
            Assert.IsTrue(record.Contains("árvíztűrő"));
            Assert.IsTrue(record.Contains(_deviceId));
            Assert.IsTrue(record.Contains("123,234,\r\n"));
            Assert.IsTrue(record.Contains("124,,456\r\n"));
        }
Пример #26
0
        public IReportingClient CreateClient(ReportServerConfiguration reportServerConfiguration)
        {
            var binding = new BasicHttpBinding("ReportingServicesSoap");
            var ntlmBinding = new BasicHttpBinding("ReportingServicesSoapNtlm");
            if(reportServerConfiguration.ServiceUrl.StartsWith("https",StringComparison.InvariantCultureIgnoreCase))
            {
                binding.Security.Mode = BasicHttpSecurityMode.Transport;
                ntlmBinding.Security.Mode = BasicHttpSecurityMode.Transport;
            }

            var client = new ReportingClient(reportServerConfiguration, binding);

            try
            {
                client.TestConnection();
            }
            catch (ReportingAuthenticationException ex)
            {
                Log.Information("CreateClient ReportingAuthenticationException, Attempting ReportingServicesSoapNtlm Binding.\n{0}", ex.Message);
                client.Dispose();
                client = new ReportingClient(reportServerConfiguration, ntlmBinding);
            }
            return client;
        }
Пример #27
0
        public void CurrentDataSingleCsvTest()
        {
            var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey);

            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}");
            ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey);
            ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"B\": 456}");

            var reportingClient = new ReportingClient(ReportingApi);

            reportingClient.Network.SetNetwork(_networkId, _networkKey);

            var sinks = reportingClient.Network.GetSinks();

            var record = reportingClient.Network.GetCurrentDataCsv(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName);

            Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n"));
            Assert.IsTrue(record.Contains("d1"));
            Assert.IsTrue(record.Contains("d2"));
            Assert.IsTrue(record.Contains(_deviceId1));
            Assert.IsTrue(record.Contains(_deviceId2));
            Assert.IsTrue(record.Contains("123,234,\r\n") || record.Contains("123,,234\r\n"));
            Assert.IsTrue(record.Contains("124,,456\r\n") || record.Contains("124,456,\r\n"));
        }
Пример #28
0
        public void ShouldHaveSameInformation()
        {
            _preProdreportingClient = new ReportingClient(baseUri: "");
            var standardsinPP  = _preProdreportingClient.standardApiClient.FindAll().Where(x => x.IsPublished == true).Select(y => _preProdreportingClient.standardApiClient.Get(y.Id)).ToList();
            var frameworksinPP = _preProdreportingClient.frameworkApiClient.FindAll().Select(y => _preProdreportingClient.frameworkApiClient.Get(y.Id)).ToList();

            var standardsinProd  = _reportingClient.standardApiClient.FindAll().Where(x => x.IsPublished == true).Select(y => _preProdreportingClient.standardApiClient.Get(y.Id)).ToList();
            var frameworksinProd = _reportingClient.frameworkApiClient.FindAll().Select(y => _preProdreportingClient.frameworkApiClient.Get(y.Id)).ToList();

            var frameworkmissinginProd = Comapare(frameworksinPP.Select(x => x.FrameworkId), frameworksinProd.Select(x => x.FrameworkId));
            var frameworkmissinginPP   = Comapare(frameworksinProd.Select(x => x.FrameworkId), frameworksinPP.Select(x => x.FrameworkId));

            var standardmissinginProd = Comapare(standardsinPP.Select(x => x.StandardId), standardsinProd.Select(x => x.StandardId));
            var standardmissinginPP   = Comapare(standardsinProd.Select(x => x.StandardId), standardsinPP.Select(x => x.StandardId));

            Assert.Multiple(() =>
            {
                Assert.AreEqual(standardsinProd.Count, standardsinPP.Count, $"Standard counts mismatch");
                Assert.AreEqual(frameworksinProd.Count, frameworksinPP.Count, $"Framework counts mismatch");

                Assert.IsTrue(frameworkmissinginProd.Count == 0, $"Missing Frameworks in Prod " + string.Join(",", frameworkmissinginProd));
                Assert.IsTrue(frameworkmissinginPP.Count == 0, $"Missing Frameworks in PP " + string.Join(",", frameworkmissinginPP));

                Assert.IsTrue(standardmissinginProd.Count == 0, $"Missing Standards in Prod " + string.Join(",", standardmissinginProd));
                Assert.IsTrue(standardmissinginPP.Count == 0, $"Missing Standards in PP " + string.Join(",", standardmissinginPP));
            });

            foreach (var standardinPP in standardsinPP)
            {
                var standardinprod = standardsinProd.Single(x => x.StandardId == standardinPP.StandardId);
                Assert.AreEqual(standardinprod.Title, standardinPP.Title, $"Standard level looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Duration, standardinPP.Duration, $"Standard Duration looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.IsPublished, standardinPP.IsPublished, $"Standard IsPublished looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Level, standardinPP.Level, $"Standard Level looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.MaxFunding, standardinPP.MaxFunding, $"Standard MaxFunding looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Ssa1, standardinPP.Ssa1, $"Standard Ssa1 looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Ssa2, standardinPP.Ssa2, $"Standard Ssa2 looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.AssessmentPlanPdf, standardinPP.AssessmentPlanPdf, $"Standard AssessmentPlanPdf looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.EntryRequirements, standardinPP.EntryRequirements, $"Standard EntryRequirements looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.IntroductoryText, standardinPP.IntroductoryText, $"Standard IntroductoryText looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.JobRoles, standardinPP.JobRoles, $"Standard JobRoles looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Keywords, standardinPP.Keywords, $"Standard Keywords looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.OverviewOfRole, standardinPP.OverviewOfRole, $"Standard OverviewOfRole looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.ProfessionalRegistration, standardinPP.ProfessionalRegistration, $"Standard ProfessionalRegistration looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.Qualifications, standardinPP.Qualifications, $"Standard Qualifications looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.StandardPdf, standardinPP.StandardPdf, $"Standard StandardPdf looks different for {standardinprod.StandardId}");
                Assert.AreEqual(standardinprod.WhatApprenticesWillLearn, standardinPP.WhatApprenticesWillLearn, $"Standard WhatApprenticesWillLearn looks different for {standardinprod.StandardId}");
            }

            foreach (var frameworkinPP in frameworksinPP)
            {
                var frameworkinProd = frameworksinProd.Single(x => x.FrameworkId == frameworkinPP.FrameworkId);
                Assert.AreEqual(frameworkinProd.Title, frameworkinPP.Title, $"Framework level looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.FrameworkCode, frameworkinPP.FrameworkCode, $"Framework FrameworkCode looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.FrameworkName, frameworkinPP.FrameworkName, $"Framework FrameworkName looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.Level, frameworkinPP.Level, $"Framework Level looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.PathwayCode, frameworkinPP.PathwayCode, $"Framework PathwayCode looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.PathwayName, frameworkinPP.PathwayName, $"Framework PathwayName looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.ProgType, frameworkinPP.ProgType, $"Framework ProgType looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.Ssa1, frameworkinPP.Ssa1, $"Framework Ssa1 looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.Ssa2, frameworkinPP.Ssa2, $"Framework Ssa2 looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.CombinedQualification, frameworkinPP.CombinedQualification, $"Framework CombinedQualification looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.CompetencyQualification, frameworkinPP.CompetencyQualification, $"Framework CompetencyQualification looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.CompletionQualifications, frameworkinPP.CompletionQualifications, $"Framework CompletionQualifications looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.EntryRequirements, frameworkinPP.EntryRequirements, $"Framework EntryRequirements looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.ExpiryDate, frameworkinPP.ExpiryDate, $"Framework ExpiryDate looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.FrameworkOverview, frameworkinPP.FrameworkOverview, $"Framework FrameworkOverview looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.KnowledgeQualification, frameworkinPP.KnowledgeQualification, $"Framework KnowledgeQualification looks different for {frameworkinProd.FrameworkId}");
                Assert.AreEqual(frameworkinProd.ProfessionalRegistration, frameworkinPP.ProfessionalRegistration, $"Framework ProfessionalRegistration looks different for {frameworkinProd.FrameworkId}");
                var ProdRole = frameworkinProd.JobRoleItems.Select(x => $"{x.Title}-{x.Description}");
                var PpRole   = frameworkinPP.JobRoleItems.Select(x => $"{x.Title}-{x.Description}");
                Assert.AreEqual(ProdRole, PpRole, $"Framework JobRoleItems looks different for {frameworkinProd.FrameworkId}");
            }
        }