예제 #1
0
        public void TryParseStringDateTimeFormatInfoDateTimeStylesDateTimeResultRef_should_be_callable_indirectly()
        {
            using (new IndirectionsContext())
            {
                // Arrange
                var dateTimeParse          = typeof(DateTime).Assembly.GetTypes().First(_ => _.Name == "DateTimeParse");
                var dateTimeResult         = typeof(DateTime).Assembly.GetTypes().First(_ => _.Name == "DateTimeResult");
                var dateTimeParse_TryParse = dateTimeParse.GetMethod("TryParse",
                                                                     BindingFlags.NonPublic |
                                                                     BindingFlags.Static,
                                                                     null,
                                                                     new[] { typeof(string), typeof(DateTimeFormatInfo), typeof(DateTimeStyles), dateTimeResult.MakeByRefType() },
                                                                     null);
                var expected = Activator.CreateInstance(dateTimeResult);

                PDateTimeParse.TryParseStringDateTimeFormatInfoDateTimeStylesDateTimeResultRef().Body = args => { args[3] = expected; return(true); };


                // Act
                var @params = new object[] { "aiueo", new DateTimeFormatInfo(), DateTimeStyles.None, null };
                var result  = dateTimeParse_TryParse.Invoke(null, @params);


                // Assert
                Assert.AreEqual(true, result);
                Assert.IsNotNull(@params[3]);
            }
        }
예제 #2
0
        public void TryParseStringDateTimeFormatInfoDateTimeStylesDateTimeRef_should_be_callable_indirectly()
        {
            using (new IndirectionsContext())
            {
                // Arrange
                PDateTimeParse.TryParseStringDateTimeFormatInfoDateTimeStylesDateTimeRef().Body = (string s, DateTimeFormatInfo dtfi, DateTimeStyles styles, out DateTime result) =>
                {
                    result = new DateTime(2014, 02, 14, 11, 30, 55, 00);
                    return(true);
                };

                // Act
                var actualResult = default(DateTime);
                var actualReturn = DateTime.TryParse(DateTime.Now.ToString("yyyyMMddHHmmss"), new CultureInfo("en-us"), DateTimeStyles.None, out actualResult);

                // Assert
                Assert.IsTrue(actualReturn);
                Assert.AreEqual(new DateTime(2014, 02, 14, 11, 30, 55, 00), actualResult);
            }
        }