Пример #1
0
        public void GET_and_COUNT()
        {
            #region Verify GET   /RNs

            var URI = HTTPPath.Parse("/RNs");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray().ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion

            #region Verify COUNT /RNs

            using (var HTTPTask = _HTTPClient.Execute(client => client.COUNT(URI,
                                                                             requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JObject(new JProperty("count", 0)).ToString(),
                                    JObject.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'COUNT " + URI + "'!");
                }
            }

            #endregion


            var RN_1 = OpenChargingCloudAPI.CreateNewRoamingNetwork(Id:  RoamingNetwork_Id.Parse("TEST_RN1"),
                                                                    Name:              I18NString.Create(Languages.deu, "Test Roaming Netz 1").
                                                                    Add(Languages.eng, "Test roaming network 1"));

            var RN_2 = OpenChargingCloudAPI.CreateNewRoamingNetwork(Id:  RoamingNetwork_Id.Parse("TEST_RN2"),
                                                                    Name:              I18NString.Create(Languages.deu, "Test Roaming Netz 2").
                                                                    Add(Languages.eng, "Test roaming network 2"));

            var RN_3 = OpenChargingCloudAPI.CreateNewRoamingNetwork(Id:  RoamingNetwork_Id.Parse("TEST_RN3"),
                                                                    Name:              I18NString.Create(Languages.deu, "Test Roaming Netz 3").
                                                                    Add(Languages.eng, "Test roaming network 3"));

            var RN_4 = OpenChargingCloudAPI.CreateNewRoamingNetwork(Id:  RoamingNetwork_Id.Parse("TEST_RN4"),
                                                                    Name:              I18NString.Create(Languages.deu, "Test Roaming Netz 4").
                                                                    Add(Languages.eng, "Test roaming network 4"));


            #region Verify GET   /RNs

            URI = HTTPPath.Parse("/RNs");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray(
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN1"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 1"),
                                                                                             new JProperty("en", "Test roaming network 1")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN2"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 2"),
                                                                                             new JProperty("en", "Test roaming network 2")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN3"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 3"),
                                                                                             new JProperty("en", "Test roaming network 3")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN4"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 4"),
                                                                                             new JProperty("en", "Test roaming network 4"))))
                                        ).ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion

            #region Verify COUNT /RNs

            using (var HTTPTask = _HTTPClient.Execute(client => client.COUNT(URI,
                                                                             requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JObject(new JProperty("count", 4)).ToString(),
                                    JObject.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'COUNT " + URI + "'!");
                }
            }

            #endregion

            #region Verify GET   /RNs?skip=2

            URI = HTTPPath.Parse("/RNs?skip=2");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray(
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN3"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 3"),
                                                                                             new JProperty("en", "Test roaming network 3")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN4"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 4"),
                                                                                             new JProperty("en", "Test roaming network 4"))))
                                        ).ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion

            #region Verify GET   /RNs?take=2

            URI = HTTPPath.Parse("/RNs?take=2");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray(
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN1"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 1"),
                                                                                             new JProperty("en", "Test roaming network 1")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN2"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 2"),
                                                                                             new JProperty("en", "Test roaming network 2"))))
                                        ).ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion

            #region Verify GET   /RNs?skip=1&take=2

            URI = HTTPPath.Parse("/RNs?skip=1&take=2");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray(
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN2"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 2"),
                                                                                             new JProperty("en", "Test roaming network 2")))),
                                        new JObject(new JProperty("RoamingNetworkId", "TEST_RN3"),
                                                    new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 3"),
                                                                                             new JProperty("en", "Test roaming network 3"))))
                                        ).ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion

            #region Verify GET   /RNs?skip=8

            URI = HTTPPath.Parse("/RNs?skip=8");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JArray().ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion


            #region Verify GET   /RNs/TEST_RN1

            URI = HTTPPath.Parse("/RNs/TEST_RN1");

            using (var HTTPTask = _HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                requestbuilder.Host = HTTPHostname.Localhost;
                requestbuilder.ContentType = HTTPContentType.JSON_UTF8;
                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
            }),
                                                      RequestTimeout: Timeout,
                                                      CancellationToken: new CancellationTokenSource().Token))

            {
                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {
                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed! " + HTTPResult.HTTPBody.ToUTF8String());
                    Assert.AreEqual(new JObject(new JProperty("RoamingNetworkId", "TEST_RN1"),
                                                new JProperty("description", new JObject(new JProperty("de", "Test Roaming Netz 1"),
                                                                                         new JProperty("en", "Test roaming network 1")))
                                                ).ToString(),
                                    JObject.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");
                }
            }

            #endregion
        }
        public void Test_ChargingPools()
        {

            var HTTPClient = new HTTPClient(IPv4Address.Localhost,
                                            RemotePort: IPPort.Parse(8000),
                                            DNSClient:  HTTPAPI.DNSClient);


            var RN      = OpenChargingCloudAPI.CreateNewRoamingNetwork(Id:   RoamingNetwork_Id.Parse("TEST_RN1"),
                                                                       Name: I18NString.Create(Languages.deu,  "Test Roaming Netz 1").
                                                                                           Add(Languages.eng,  "Test roaming network 1"));

            var CPO     = RN.CreateChargingStationOperator(ChargingStationOperatorId:  ChargingStationOperator_Id.Parse("DE*GEF"),
                                                   Name:            I18NString.Create(Languages.deu, "GraphDefined"),
                                                   Description:     I18NString.Create(Languages.deu, "GraphDefined EVSE Operator"),
                                                   Configurator:    evseoperator => {
                                                                        evseoperator.AddDataLicense(DataLicense.OpenDatabaseLicense);
                                                                    });

            #region Verify GET /RNs/TEST_RN1/ChargingPools

            var URI = HTTPPath.Parse("/RNs/TEST_RN1/ChargingPools");

            using (var HTTPTask  = HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                                                                               requestbuilder.Host         = HTTPHostname.Localhost;
                                                                               requestbuilder.ContentType  = HTTPContentType.JSON_UTF8;
                                                                               requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
                                                                           }),
                                                                            RequestTimeout: Timeout,
                                                                            CancellationToken: new CancellationTokenSource().Token))

            {

                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {

                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed!");
                    Assert.AreEqual(new JArray().ToString(),
                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");

                }

            }

            #endregion

            #region Verify COUNT /RNs/TEST_RN1/ChargingPools

            using (var HTTPTask  = HTTPClient.Execute(client => client.COUNT(URI,
                                                                             requestbuilder => {
                                                                                 requestbuilder.Host         = HTTPHostname.Localhost;
                                                                                 requestbuilder.ContentType  = HTTPContentType.JSON_UTF8;
                                                                                 requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
                                                                             }),
                                                                              RequestTimeout: Timeout,
                                                                              CancellationToken: new CancellationTokenSource().Token))

            {

                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {

                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed!");
                    Assert.AreEqual(new JObject(new JProperty("count", 0)).ToString(),
                                    JObject.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'COUNT " + URI + "'!");

                }

            }

            #endregion


            var Pool_1  = CPO.CreateChargingPool(ChargingPool_Id.Parse(CPO.Id, "1111"),
                                                 pool => {
                                                     pool.Address = Address.Create(Country.Austria,
                                                                                   "07741",
                                                                                   I18NString.Create(Languages.deu, "Wien"),
                                                                                   "Hofplatz", "17");
                                                 });

            var Pool_2  = CPO.CreateChargingPool(ChargingPool_Id.Parse(CPO.Id, "2222"),
                                                 pool => {
                                                     pool.Address = Address.Create(Country.Germany,
                                                                                   "07749",
                                                                                   I18NString.Create(Languages.deu, "Jena"),
                                                                                   "Biberweg", "18");
                                                 });

            var Pool_3  = CPO.CreateChargingPool(ChargingPool_Id.Parse(CPO.Id, "3333"),
                                                 pool => {
                                                     pool.Address = Address.Create(Country.Belgium,
                                                                                   "07758",
                                                                                   I18NString.Create(Languages.bgn, "Brussels"),
                                                                                   "Avenue", "19");
                                                 });


            #region Verify GET   /RNs/TEST_RN1/ChargingPools

            URI = HTTPPath.Parse("/RNs/TEST_RN1/ChargingPools");

            using (var HTTPTask  = HTTPClient.Execute(client => client.GET(URI,
                                                                           requestbuilder => {
                                                                               requestbuilder.Host         = HTTPHostname.Localhost;
                                                                               requestbuilder.ContentType  = HTTPContentType.JSON_UTF8;
                                                                               requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
                                                                           }),
                                                                            RequestTimeout: Timeout,
                                                                            CancellationToken: new CancellationTokenSource().Token))

            {

                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {

                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed!");
                    Assert.AreEqual(new JArray(

                                        new JObject(new JProperty("ChargingPoolId",   "DE*GEF*P1111"),
                                                    new JProperty("OperatorId",       "DE*GEF"),
                                                    new JProperty("Address",
                                                        new JObject(new JProperty("houseNumber",  "17"),
                                                                    new JProperty("street",       "Hofplatz"),
                                                                    new JProperty("postalCode",   "07741"),
                                                                    new JProperty("city",
                                                                        new JObject(new JProperty("de", "Wien"))
                                                                    ),
                                                                    new JProperty("country",
                                                                        new JObject(new JProperty("en", "Austria"))
                                                                    )
                                                   )),
                                                   new JProperty("ChargingStations",  new JArray())
                                                   ),

                                        new JObject(new JProperty("ChargingPoolId",   "DE*GEF*P2222"),
                                                    new JProperty("OperatorId",       "DE*GEF"),
                                                    new JProperty("Address",
                                                        new JObject(new JProperty("houseNumber",  "18"),
                                                                    new JProperty("street",       "Biberweg"),
                                                                    new JProperty("postalCode",   "07749"),
                                                                    new JProperty("city",
                                                                        new JObject(new JProperty("de", "Jena")
                                                                    )),
                                                                    new JProperty("country",
                                                                        new JObject(
                                                                            new JProperty("en",  "Germany"),
                                                                            new JProperty("de",  "Deutschland")
                                                                        )
                                                                    )
                                                   )),
                                                   new JProperty("ChargingStations",  new JArray())
                                                   ),

                                        new JObject(new JProperty("ChargingPoolId",   "DE*GEF*P3333"),
                                                    new JProperty("OperatorId",       "DE*GEF"),
                                                    new JProperty("Address",
                                                        new JObject(new JProperty("houseNumber",  "19"),
                                                                    new JProperty("street",       "Avenue"),
                                                                    new JProperty("postalCode",   "07758"),
                                                                    new JProperty("city",
                                                                        new JObject(new JProperty("be", "Brussels"))
                                                                    ),
                                                                    new JProperty("country",
                                                                        new JObject(new JProperty("en", "Belgium"))
                                                                    )
                                                   )),
                                                   new JProperty("ChargingStations",  new JArray())
                                                   )

                                    ).ToString(),

                                    JArray.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'GET " + URI + "'!");

                }

            }

            #endregion

            #region Verify COUNT /RNs/TEST_RN1/ChargingPools

            using (var HTTPTask = HTTPClient.Execute(client => client.COUNT(URI,
                                                                            requestbuilder => {
                                                                                requestbuilder.Host         = HTTPHostname.Localhost;
                                                                                requestbuilder.ContentType  = HTTPContentType.JSON_UTF8;
                                                                                requestbuilder.Accept.Add(HTTPContentType.JSON_UTF8);
                                                                            }),
                                                                              RequestTimeout: Timeout,
                                                                              CancellationToken: new CancellationTokenSource().Token))

            {

                HTTPTask.Wait(Timeout);

                using (var HTTPResult = HTTPTask.Result)
                {

                    Assert.AreEqual(HTTPStatusCode.OK, HTTPResult.HTTPStatusCode, "'GET " + URI + "' failed!");
                    Assert.AreEqual(new JObject(new JProperty("count", 3)).ToString(),
                                    JObject.Parse(HTTPResult.HTTPBody.ToUTF8String()).ToString(),
                                    "Invalid response for 'COUNT " + URI + "'!");

                }

            }

            #endregion


        }