#include "serialization/DeserializationTypeDetector.h" #include "unittest/TestSuite.h" static DeserializationContext * detect1(const void * data, size_t size) { if (data == (void *) 1) { return (void *) 2; } return NULL; } static DeserializationContext * detect2(const void * data, size_t size) { if (size == 1) { return (void *) 3; } return NULL; } static void test(void) { DeserializationTypeDetector * detector = DeserializationTypeDetector_create(); DeserializationContext * context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 0); TestCase_assertPointerNULL(context); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, (void *) 1, 0); TestCase_assertPointerNULL(context); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 1); TestCase_assertPointerNULL(context); DeserializationTypeDetector_registerDetectionCallback(detector, detect1); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 0); TestCase_assertPointerNULL(context); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, (void *) 1, 0); TestCase_assertPointerEqual(context, (void *) 2); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 1); TestCase_assertPointerNULL(context); DeserializationTypeDetector_registerDetectionCallback(detector, detect2); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 0); TestCase_assertPointerNULL(context); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, (void *) 1, 0); TestCase_assertPointerEqual(context, (void *) 2); context = DeserializationTypeDetector_createDeserializationContextWithData(detector, NULL, 1); TestCase_assertPointerEqual(context, (void *) 3); DeserializationTypeDetector_dispose(detector); } TEST_SUITE(DeserializationTypeDetectorTest, test)