Beispiel #1
0
 public static T Cast(S value)
 {
     if (s_cast == null)
     {
         s_cast = new CastFunc(GenericCast.CreateCast <S, T>());
     }
     return(s_cast(value));
 }
Beispiel #2
0
        private void AsSomething_WhenIsNotSomething_ThrowsException <TConcrete>(CastFunc castFunc)
        {
            // Arrange:
            var token     = new Token();
            var tracer    = new Mock <IDebugTracer>().Object;
            var something = (IAstNode)Activator.CreateInstance(typeof(TConcrete), token, tracer);

            // Act:
            void Lambda() => castFunc(something);

            // Assert:
            Assert.Throws <NodeCastException>(Lambda);
        }
Beispiel #3
0
        private void AsSomething_WhenIsSomething_ReturnsSomething <TConcrete, TInterface>(CastFunc castFunc)
        {
            // Arrange:
            var token     = new Token();
            var tracer    = new Mock <IDebugTracer>().Object;
            var something = (IAstNode)Activator.CreateInstance(typeof(TConcrete), token, tracer);

            // Act:
            var actual = castFunc(something);

            // Assert:
            Assert.That(actual, Is.InstanceOf(typeof(TInterface)));
        }