コード例 #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
ファイル: Formatter_Tests.cs プロジェクト: awhewell/owin
 public void FormatDateTime_Formats_DateTime(string inputText, string culture, string expected)
 {
     using (new CultureSwap(culture)) {
         var input  = DataRowParser.DateTime(inputText);
         var actual = Formatter.FormatDateTime(input);
         Assert.AreEqual(expected, actual);
     }
 }
コード例 #3
0
        public void Format_Behaves_Correctly(string rawValue, string expected)
        {
            using (new CultureSwap("en-GB")) {
                var value     = DataRowParser.DateTime(rawValue).Value;
                var formatter = new DateTime_Iso8601_Formatter();

                var actual = formatter.Format(value);

                Assert.AreEqual(expected, actual);
            }
        }
コード例 #4
0
        [DataRow("en-GB", "2019-07-01T17:42:32.123+0800", true, "2019-07-01 09:42:32.123 Utc")]             // Local timezone specified, output is UTC
        public void TryParse_Behaves_Correctly(string culture, string text, bool expectedResult, string expectedValueText)
        {
            using (new CultureSwap(culture)) {
                var parser = new DateTime_Invariant_Parser();

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

                var expectedValue = DataRowParser.DateTime(expectedValueText);
                Assert.AreEqual(expectedResult, actualResult);
                Assert.AreEqual(expectedValue, actualValue);
                Assert.AreEqual(expectedValue?.Kind, actualValue.Kind);
            }
        }
コード例 #5
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);
                }
            }
        }