1/*
2	$Id: PropertyTestcase.h 1218 2002-09-28 00:19:49Z shatty $
3
4	This file defines a base class for performing all tests of BPropertyInfo
5	functionality.
6
7	*/
8
9
10#ifndef PropertyTestcase_H
11#define PropertyTestcase_H
12
13
14#include "../common.h"
15#include <PropertyInfo.h>
16
17
18class PropertyTestcase :
19	public TestCase {
20
21private:
22	property_info *DuplicateProperties(const property_info *prop1, int prop_count);
23	value_info *DuplicateValues(const value_info *value1, int value_count);
24
25protected:
26	virtual void TestProperty(BPropertyInfo *propTest,
27	                          const property_info *prop_list,
28	                          const value_info *value_list,
29	                          int32 prop_count,
30	                          int32 value_count,
31	                          ssize_t flat_size,
32	                          const char *lflat_data,
33	                          const char *bflat_data) = 0;
34
35	static const char *uniquePropName;
36	static const uint32 uniqueCommand;
37	static const uint32 uniqueSpecifier;
38	static const char *commonPropName;
39	static const uint32 commonCommand;
40	static const uint32 commonSpecifier;
41	static const uint32 wildcardCommandTests[];
42	static const uint32 wildcardSpecifierTests[];
43
44public:
45	void PerformTest(void);
46	PropertyTestcase(std::string name = "");
47	virtual ~PropertyTestcase();
48	};
49
50#endif
51