#ifndef TEST_H #define TEST_H ///////////////////////////////////////////////////////////////////// // Test.h - Demonstrate testing native C++ using reflection via // // managed C++/CLI test driver // // // // Jim Fawcett, CSE784 - Software Studio, Fall 2008 // ///////////////////////////////////////////////////////////////////// #using using namespace System; using namespace System::Reflection; /////////////////////////////////////////////////////////// // Unmanaged C++ code to test class NativeTestedCode { public: int functionReturnsThree() { return 3; } }; /////////////////////////////////////////////////////////// // Managed C++/CLI interface public interface struct ITest { bool test(); }; /////////////////////////////////////////////////////////// // Managed C++/CLI test driver for unmanged code ref class Test : ITest { public: Test() {} ~Test() {} //----< demo - not part of testing >--------------------- void say() { Console::Write("\n Testing"); } void sayMore(String^ s) { Console::Write("\n Testing: {0}", s); } //----< implements interface test function >------------- virtual bool test() { bool testResult; NativeTestedCode* ntc = new NativeTestedCode(); if(ntc->functionReturnsThree() == 3) { testResult = true; Console::Write("\n native code test passes"); } else { testResult = false; Console::Write("\n native code test fails"); } delete ntc; return testResult; } }; #endif