Exemplo n.º 1
0
 private static void CorrectClassMetadataOn(ITypeHandler4 typeHandler, ClassMetadata
                                            classMetadata)
 {
     if (typeHandler is StandardReferenceTypeHandler)
     {
         StandardReferenceTypeHandler handler = (StandardReferenceTypeHandler)typeHandler;
         handler.ClassMetadata(classMetadata);
     }
 }
        public virtual void TestCorrectHandlerVersion()
        {
            OpenTypeHandler openTypeHandler = new OpenTypeHandler(Container());

            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler0), openTypeHandler, -1);
            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler0), openTypeHandler, 0);
            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler2), openTypeHandler, 1);
            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler2), openTypeHandler, 2);
            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler), openTypeHandler, HandlerRegistry
                                          .HandlerVersion);
            AssertCorrectedHandlerVersion(typeof(OpenTypeHandler), openTypeHandler, HandlerRegistry
                                          .HandlerVersion + 1);
            StandardReferenceTypeHandler stdReferenceHandler = new StandardReferenceTypeHandler
                                                                   (ItemClassMetadata());

            AssertCorrectedHandlerVersion(typeof(StandardReferenceTypeHandler0), stdReferenceHandler
                                          , 0);
            AssertCorrectedHandlerVersion(typeof(StandardReferenceTypeHandler), stdReferenceHandler
                                          , 2);
            PrimitiveTypeMetadata primitiveMetadata = new PrimitiveTypeMetadata(Container(),
                                                                                openTypeHandler, 0, null);

            AssertPrimitiveHandlerDelegate(typeof(OpenTypeHandler0), primitiveMetadata, 0);
            AssertPrimitiveHandlerDelegate(typeof(OpenTypeHandler2), primitiveMetadata, 1);
            AssertPrimitiveHandlerDelegate(typeof(OpenTypeHandler2), primitiveMetadata, 2);
            AssertPrimitiveHandlerDelegate(typeof(OpenTypeHandler), primitiveMetadata, HandlerRegistry
                                           .HandlerVersion);
            ArrayHandler arrayHandler = new ArrayHandler(openTypeHandler, false);

            AssertCorrectedHandlerVersion(typeof(ArrayHandler0), arrayHandler, 0);
            AssertCorrectedHandlerVersion(typeof(ArrayHandler1), arrayHandler, 1);
            AssertCorrectedHandlerVersion(typeof(ArrayHandler3), arrayHandler, 2);
            AssertCorrectedHandlerVersion(typeof(ArrayHandler3), arrayHandler, 3);
            AssertCorrectedHandlerVersion(typeof(ArrayHandler), arrayHandler, HandlerRegistry
                                          .HandlerVersion);
            ArrayHandler multidimensionalArrayHandler = new MultidimensionalArrayHandler(openTypeHandler
                                                                                         , false);

            AssertCorrectedHandlerVersion(typeof(MultidimensionalArrayHandler0), multidimensionalArrayHandler
                                          , 0);
            AssertCorrectedHandlerVersion(typeof(MultidimensionalArrayHandler3), multidimensionalArrayHandler
                                          , 1);
            AssertCorrectedHandlerVersion(typeof(MultidimensionalArrayHandler3), multidimensionalArrayHandler
                                          , 2);
            AssertCorrectedHandlerVersion(typeof(MultidimensionalArrayHandler3), multidimensionalArrayHandler
                                          , 3);
            AssertCorrectedHandlerVersion(typeof(MultidimensionalArrayHandler), multidimensionalArrayHandler
                                          , HandlerRegistry.HandlerVersion);
        }