Пример #1
0
        public void BuildRouteParameters_Parses_Different_Types_From_Path_Parts(string methodName, string pathPart, string culture, object rawExpected)
        {
            using (new CultureSwap(culture)) {
                var route = Route_Tests.CreateRoute(typeof(PathPartTypeController), methodName);
                _RouteMapper.Initialise(new Route[] { route });

                _Environment.SetRequestPath(new string[] { route.PathParts[0].Part, pathPart });
                var parameters = _RouteMapper.BuildRouteParameters(route, _Environment.Environment);

                var expected = rawExpected;
                switch (methodName)
                {
                case nameof(PathPartTypeController.DateTimePP):         expected = DataRowParser.DateTime((string)expected); break;

                case nameof(PathPartTypeController.DateTimeOffsetPP):   expected = DataRowParser.DateTimeOffset((string)expected); break;
                }

                Assert.IsTrue(parameters.IsValid);
                Assert.AreEqual(1, parameters.Parameters.Length);
                var actual = parameters.Parameters[0];
                if (actual is byte[] byteArray)
                {
                    var expectedByteArray = (byte[])expected;
                    Assert.IsTrue(expectedByteArray.SequenceEqual(byteArray));
                }
                else
                {
                    Assert.AreEqual(expected, parameters.Parameters[0]);
                }
            }
        }
Пример #2
0
 public void FormatDateTimeOffset_Formats_DateTime(string inputText, string culture, string expected)
 {
     using (new CultureSwap(culture)) {
         var input  = DataRowParser.DateTimeOffset(inputText);
         var actual = Formatter.FormatDateTimeOffset(input);
         Assert.AreEqual(expected, actual);
     }
 }
        public void Format_Behaves_Correctly(string rawValue, string expected)
        {
            using (new CultureSwap("en-GB")) {
                var value     = DataRowParser.DateTimeOffset(rawValue).Value;
                var formatter = new DateTimeOffset_JavaScriptTicks_Formatter();

                var actual = formatter.Format(value);

                Assert.AreEqual(expected, actual);
            }
        }
Пример #4
0
        public void Format_Behaves_Correctly(string culture, string rawValue, string expected)
        {
            using (new CultureSwap(culture)) {
                var value     = DataRowParser.DateTimeOffset(rawValue).Value;
                var formatter = new DateTimeOffset_MicrosoftJson_Formatter();

                var actual = formatter.Format(value);

                Assert.AreEqual(expected, actual);
            }
        }
Пример #5
0
        [DataRow("en-GB", "2019-07-01T17:42:32.123+0800", true, "2019-07-01 17:42:32.123 +0800")]       // Local timezone specified
        public void TryParse_Behaves_Correctly(string culture, string text, bool expectedResult, string expectedValueText)
        {
            using (new CultureSwap(culture)) {
                var parser = new DateTimeOffset_Local_Parser();

                var actualResult = parser.TryParse(text, out var actualValue);

                var expectedValue = DataRowParser.DateTimeOffset(expectedValueText);
                Assert.AreEqual(expectedResult, actualResult);
                Assert.AreEqual(expectedValue, actualValue);
            }
        }
Пример #6
0
        public void BuildRouteParameters_Can_Parse_Parameter_From_Query_String(string methodName, string parameterName, string queryString, string culture, object rawExpected)
        {
            using (new CultureSwap(culture)) {
                var route = Route_Tests.CreateRoute(typeof(QueryStringController), methodName);
                _RouteMapper.Initialise(new Route[] { route });
                _Environment.RequestQueryString = queryString;

                _Environment.SetRequestPath(route.PathParts[0].Part);
                var parameters = _RouteMapper.BuildRouteParameters(route, _Environment.Environment);

                var expected = rawExpected;
                switch (methodName)
                {
                case nameof(QueryStringController.DateParam):       expected = DataRowParser.DateTime((string)expected); break;

                case nameof(QueryStringController.DateOffsetParam): expected = DataRowParser.DateTimeOffset((string)expected); break;
                }

                Assert.IsTrue(parameters.IsValid);
                Assert.AreEqual(1, parameters.Parameters.Length);
                var param = parameters.Parameters[0];

                if (expected is IList expectedList)
                {
                    var actualList = (IList)param;
                    Assert.AreEqual(expectedList.Count, actualList.Count);
                    for (var i = 0; i < expectedList.Count; ++i)
                    {
                        Assert.AreEqual(expectedList[i], actualList[i]);
                    }
                }
                else
                {
                    Assert.AreEqual(expected, param);
                }
            }
        }