Tests for find_instantiation_func(const char* name, const char* sig)
@note There are no tests for find_instantiation_func(const char*) as it
simply calls through to the version which takes an explicit sig,
setting that parameter to NULL.
Here's the use case matrix:
name sig
-------- --------
case 1 NULL NULL
case 2 bogus NULL
case 3 NULL bogus
case 4 bogus bogus
case 5 local NULL
case 6 remote NULL
case 7 local bogus
case 8 remote bogus
case 9 local good
case 10 remote good
*/
#include "FindInstantiationFuncTester.h"
#include "LocalTestObject.h"
find_instantiation_func(const char* name, const char* sig)
@case Both parameters NULL
@param name NULL
@param sig NULL
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case1()
{
instantiation_func f = find_instantiation_func(NULL, NULL);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Bad name with NULL signature
@param name Invalid class name
@param sig NULL
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case2()
{
instantiation_func f = find_instantiation_func(gInvalidClassName, NULL);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case NULL name with invalid signature
@param name NULL class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case3()
{
instantiation_func f = find_instantiation_func(NULL, gInvalidSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Both params are invalid
@param name Invalid class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case4()
{
instantiation_func f = find_instantiation_func(gInvalidClassName,
gInvalidSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with a
NULL signature
@param name Valid local class name
@param sig NULL signature
@results Returns valid function
*/
void TFindInstantiationFuncTester::Case5()
{
instantiation_func f = find_instantiation_func(gLocalClassName, NULL);
CPPUNIT_ASSERT(f != NULL);
BMessage Archive;
Archive.AddString("class", gLocalClassName);
TIOTest* Test = dynamic_cast<TIOTest*>(f(&Archive));
CPPUNIT_ASSERT(Test != NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with a
NULL signature
@param name Valid remote class name
@param sig NULL signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case6()
{
instantiation_func f = find_instantiation_func(gRemoteClassName, NULL);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with an
invalid signature
@param name Valid local class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case7()
{
instantiation_func f = find_instantiation_func(gLocalClassName,
gInvalidSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with an
invalid signature
@param name Valid remote class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case8()
{
instantiation_func f = find_instantiation_func(gRemoteClassName,
gInvalidSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with a
valid signature
@param name Valid local class name
@param sig Valid signature
@results Returns valid function
@note This test is not currently used; can't obtain the local
signature without a BApplication object (gLocalSig is a
placeholder).
*/
void TFindInstantiationFuncTester::Case9()
{
instantiation_func f = find_instantiation_func(gLocalClassName, gLocalSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with a
valid signature
@param name Valid remote class name
@param sig Valid signature
@results Returns NULL
@note This case's results are because find_instantiation_func
doesn't actually load anything in order to do its work.
*/
void TFindInstantiationFuncTester::Case10()
{
instantiation_func f = find_instantiation_func(gRemoteClassName,
gRemoteSig);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Archive is NULL
@param Archive NULL
*/
void TFindInstantiationFuncTester::Case1M()
{
instantiation_func f = find_instantiation_func((BMessage*)NULL);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Bad name with NULL signature
@param name Invalid class name
@param sig NULL
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case2M()
{
BMessage Archive;
Archive.AddString("class", gInvalidClassName);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case NULL name with invalid signature
@param name NULL class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case3M()
{
BMessage Archive;
Archive.AddString("add_on", gInvalidSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Both params are invalid
@param name Invalid class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case4M()
{
BMessage Archive;
Archive.AddString("class", gInvalidClassName);
Archive.AddString("add_on", gInvalidSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with a
NULL signature
@param name Valid local class name
@param sig NULL signature
@results Returns valid function
*/
void TFindInstantiationFuncTester::Case5M()
{
BMessage Archive;
Archive.AddString("class", gLocalClassName);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f != NULL);
TIOTest* Test = dynamic_cast<TIOTest*>(f(&Archive));
CPPUNIT_ASSERT(Test != NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with a
NULL signature
@param name Valid remote class name
@param sig NULL signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case6M()
{
BMessage Archive;
Archive.AddString("class", gRemoteClassName);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with an
invalid signature
@param name Valid local class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case7M()
{
BMessage Archive;
Archive.AddString("class", gLocalClassName);
Archive.AddString("add_on", gInvalidSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with an
invalid signature
@param name Valid remote class name
@param sig Invalid signature
@results Returns NULL
*/
void TFindInstantiationFuncTester::Case8M()
{
BMessage Archive;
Archive.AddString("class", gRemoteClassName);
Archive.AddString("add_on", gInvalidSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a locally implemented class with a
valid signature
@param name Valid local class name
@param sig Valid signature
@results Returns valid function
@note This test is not currently used; can't obtain the local
signature without a BApplication object (gLocalSig is a
placeholder).
*/
void TFindInstantiationFuncTester::Case9M()
{
BMessage Archive;
Archive.AddString("class", gLocalClassName);
Archive.AddString("add_on", gLocalSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
find_instantiation_func(const char* name, const char* sig)
@case Valid name of a remotely implemented class with a
valid signature
@param name Valid remote class name
@param sig Valid signature
@results Returns NULL
@note This case's results are because find_instantiation_func
doesn't actually load anything in order to do its work.
*/
void TFindInstantiationFuncTester::Case10M()
{
BMessage Archive;
Archive.AddString("class", gRemoteClassName);
Archive.AddString("add_on", gRemoteSig);
instantiation_func f = find_instantiation_func(&Archive);
CPPUNIT_ASSERT(f == NULL);
}
CppUnit::Test* TFindInstantiationFuncTester::Suite()
{
CppUnit::TestSuite* SuiteOfTests = new CppUnit::TestSuite;
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case1);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case2);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case3);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case4);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case5);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case6);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case7);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case8);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case10);
#if !defined(TEST_R5)
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case1M);
#endif
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case2M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case3M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case4M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case5M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case6M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case7M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case8M);
ADD_TEST(SuiteOfTests, TFindInstantiationFuncTester, Case10M);
return SuiteOfTests;
}
* $Log $
*
* $Id $
*
*/