Beispiel #1
0
        // hide
        [U] public void StringImplicitConversionParsing()
        {
            var testCases = new StringParsingTestCases
            {
                { "2.000000000e-06ms", TimeSpan.FromMilliseconds(2.000000000e-06), "0.000002ms" },
                { "3.1e-11ms", TimeSpan.FromMilliseconds(3.1e-11), "0.000000000031ms" },
                { "1000 nanos", new TimeSpan(10), "1000nanos" },
                { "1000nanos", new TimeSpan(10), "1000nanos" },
                { "1000 NANOS", new TimeSpan(10), "1000nanos" },
                { "1000NANOS", new TimeSpan(10), "1000nanos" },
                { "10micros", new TimeSpan(100), "10micros" },
                { "10   MS", new TimeSpan(0, 0, 0, 0, 10), "10ms" },
                { "10ms", new TimeSpan(0, 0, 0, 0, 10), "10ms" },
                { "10   ms", new TimeSpan(0, 0, 0, 0, 10), "10ms" },
                { "10s", new TimeSpan(0, 0, 10), "10s" },
                { "-10s", new TimeSpan(0, 0, -10), "-10s" },
                { "-10S", new TimeSpan(0, 0, -10), "-10s" },
                { "10m", new TimeSpan(0, 10, 0), "10m" },
                { "10M", new TimeSpan(0, 10, 0), "10m" },                 // 300 days not minutes
                { "10h", new TimeSpan(10, 0, 0), "10h" },
                { "10H", new TimeSpan(10, 0, 0), "10h" },
                { "10d", new TimeSpan(10, 0, 0, 0), "10d" },
            };

            foreach (var testCase in testCases)
            {
                var time = new Time(testCase.Item1);
                time.ToTimeSpan().Should().Be(testCase.Item2, "we passed in {0}", testCase.Item1);
                time.ToString().Should().Be(testCase.Item3);
            }
        }
Beispiel #2
0
        // hide
        [U] public void StringParseExceptions()
        {
            var testCases = new StringParsingTestCases
            {
                { "1000", "cannot be parsed to an interval" },
                { "1000x", "is invalid" },
            };

            foreach (var testCase in testCases)
            {
                Action create = () => new Time(testCase.Item1);
                var    e      = create.Invoking((a) => a()).ShouldThrow <ArgumentException>(testCase.Item1).Subject.First();
                e.Message.Should().Contain(testCase.Item3);
            }
        }