34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
OFValue *value;
void *pointer = &value;
TEST(@"+[valueWithBytes:objCType:]",
(value = [OFValue valueWithBytes: &range
objCType: @encode(of_range_t)]))
TEST(@"-[objCType]", strcmp([value objCType], @encode(of_range_t)) == 0)
TEST(@"-[objCType]", strcmp(value.objCType, @encode(of_range_t)) == 0)
TEST(@"-[getValue:size:]",
R([value getValue: &range2
size: sizeof(of_range_t)]) &&
of_range_equal(range2, range))
EXPECT_EXCEPTION(@"-[getValue:size:] with wrong size throws",
OFOutOfRangeException,
[value getValue: &range
size: sizeof(of_range_t) - 1])
TEST(@"+[valueWithPointer:]",
(value = [OFValue valueWithPointer: pointer]))
TEST(@"-[pointerValue]",
[value pointerValue] == pointer &&
value.pointerValue == pointer &&
[[OFValue valueWithBytes: &pointer
objCType: @encode(void *)] pointerValue] == pointer)
EXPECT_EXCEPTION(@"-[pointerValue] with wrong size throws",
OFOutOfRangeException,
[[OFValue valueWithBytes: "a"
objCType: @encode(char)] pointerValue])
TEST(@"+[valueWithNonretainedObject:]",
(value = [OFValue valueWithNonretainedObject: pointer]))
TEST(@"-[nonretainedObjectValue]",
[value nonretainedObjectValue] == pointer &&
value.nonretainedObjectValue == pointer &&
[[OFValue valueWithBytes: &pointer
objCType: @encode(id)] pointerValue] == pointer)
EXPECT_EXCEPTION(@"-[nonretainedObjectValue] with wrong size throws",
OFOutOfRangeException,
[[OFValue valueWithBytes: "a"
objCType: @encode(char)] nonretainedObjectValue])
TEST(@"+[valueWithRange:]",
(value = [OFValue valueWithRange: range]))
TEST(@"-[rangeValue]",
of_range_equal([value rangeValue], range) &&
of_range_equal(value.rangeValue, range) &&
(value = [OFValue valueWithBytes: &range
objCType: @encode(of_range_t)]) &&
of_range_equal([value rangeValue], range))
of_range_equal(value.rangeValue, range))
TEST(@"-[getValue:size:] for OFValue_range",
(value = [OFValue valueWithRange: range]) &&
R([value getValue: &range2
size: sizeof(range2)]) &&
of_range_equal(range2, range))
EXPECT_EXCEPTION(@"-[rangeValue] with wrong size throws",
OFOutOfRangeException,
[[OFValue valueWithBytes: "a"
objCType: @encode(char)] rangeValue])
TEST(@"+[valueWithPoint:]",
(value = [OFValue valueWithPoint: point]))
TEST(@"-[pointValue]",
of_point_equal([value pointValue], point) &&
of_point_equal(value.pointValue, point) &&
(value = [OFValue valueWithBytes: &point
objCType: @encode(of_point_t)]) &&
of_point_equal([value pointValue], point))
of_point_equal(value.pointValue, point))
TEST(@"-[getValue:size:] for OFValue_point",
(value = [OFValue valueWithPoint: point]) &&
R([value getValue: &point2
size: sizeof(point2)]) &&
of_point_equal(point2, point))
EXPECT_EXCEPTION(@"-[pointValue] with wrong size throws",
OFOutOfRangeException,
[[OFValue valueWithBytes: "a"
objCType: @encode(char)] pointValue])
TEST(@"+[valueWithDimension:]",
(value = [OFValue valueWithDimension: dimension]))
TEST(@"-[dimensionValue]",
of_dimension_equal([value dimensionValue], dimension) &&
of_dimension_equal(value.dimensionValue, dimension) &&
(value = [OFValue valueWithBytes: &dimension
objCType: @encode(of_dimension_t)]) &&
of_dimension_equal([value dimensionValue], dimension))
of_dimension_equal(value.dimensionValue, dimension))
TEST(@"-[getValue:size:] for OFValue_dimension",
(value = [OFValue valueWithDimension: dimension]) &&
R([value getValue: &dimension2
size: sizeof(dimension2)]) &&
of_dimension_equal(dimension2, dimension))
EXPECT_EXCEPTION(@"-[dimensionValue] with wrong size throws",
OFOutOfRangeException,
[[OFValue valueWithBytes: "a"
objCType: @encode(char)] dimensionValue])
TEST(@"+[valueWithRectangle:]",
(value = [OFValue valueWithRectangle: rectangle]))
TEST(@"-[rectangleValue]",
of_rectangle_equal([value rectangleValue], rectangle) &&
of_rectangle_equal(value.rectangleValue, rectangle) &&
(value = [OFValue valueWithBytes: &rectangle
objCType: @encode(of_rectangle_t)]) &&
of_rectangle_equal([value rectangleValue], rectangle))
of_rectangle_equal(value.rectangleValue, rectangle))
TEST(@"-[getValue:size:] for OFValue_rectangle",
(value = [OFValue valueWithRectangle: rectangle]) &&
R([value getValue: &rectangle2
size: sizeof(rectangle2)]) &&
of_rectangle_equal(rectangle2, rectangle))
|