+static void test_createHatchBrush(void)
+{
+ GpStatus status;
+ GpHatch *brush;
+
+ status = GdipCreateHatchBrush(HatchStyleMin, 1, 2, &brush);
+ expect(Ok, status);
+ ok(brush != NULL, "Expected the brush to be initialized.\n");
+
+ GdipDeleteBrush((GpBrush *)brush);
+
+ status = GdipCreateHatchBrush(HatchStyleMax, 1, 2, &brush);
+ expect(Ok, status);
+ ok(brush != NULL, "Expected the brush to be initialized.\n");
+
+ GdipDeleteBrush((GpBrush *)brush);
+
+ status = GdipCreateHatchBrush(HatchStyle05Percent, 1, 2, NULL);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateHatchBrush((HatchStyle)(HatchStyleMin - 1), 1, 2, &brush);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateHatchBrush((HatchStyle)(HatchStyleMax + 1), 1, 2, &brush);
+ expect(InvalidParameter, status);
+}
+
+static void test_createLineBrushFromRectWithAngle(void)
+{
+ GpStatus status;
+ GpLineGradient *brush;
+ GpRectF rect1 = { 1, 3, 1, 2 };
+ GpRectF rect2 = { 1, 3, -1, -2 };
+ GpRectF rect3 = { 1, 3, 0, 1 };
+ GpRectF rect4 = { 1, 3, 1, 0 };
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 0, TRUE, WrapModeTile, &brush);
+ expect(Ok, status);
+ GdipDeleteBrush((GpBrush *) brush);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect2, 10, 11, 135, TRUE, (WrapMode)(WrapModeTile - 1), &brush);
+ expect(Ok, status);
+ GdipDeleteBrush((GpBrush *) brush);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect2, 10, 11, -225, FALSE, (WrapMode)(WrapModeTile - 1), &brush);
+ expect(Ok, status);
+ GdipDeleteBrush((GpBrush *) brush);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 405, TRUE, (WrapMode)(WrapModeClamp + 1), &brush);
+ expect(Ok, status);
+ GdipDeleteBrush((GpBrush *) brush);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 45, FALSE, (WrapMode)(WrapModeClamp + 1), &brush);
+ expect(Ok, status);
+ GdipDeleteBrush((GpBrush *) brush);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 90, TRUE, WrapModeTileFlipX, &brush);
+ expect(Ok, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(NULL, 10, 11, 90, TRUE, WrapModeTile, &brush);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect3, 10, 11, 90, TRUE, WrapModeTileFlipXY, &brush);
+ expect(OutOfMemory, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect4, 10, 11, 90, TRUE, WrapModeTileFlipXY, &brush);
+ expect(OutOfMemory, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect3, 10, 11, 90, TRUE, WrapModeTileFlipXY, NULL);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect4, 10, 11, 90, TRUE, WrapModeTileFlipXY, NULL);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect3, 10, 11, 90, TRUE, WrapModeClamp, &brush);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect4, 10, 11, 90, TRUE, WrapModeClamp, &brush);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 90, TRUE, WrapModeClamp, &brush);
+ expect(InvalidParameter, status);
+
+ status = GdipCreateLineBrushFromRectWithAngle(&rect1, 10, 11, 90, TRUE, WrapModeTile, NULL);
+ expect(InvalidParameter, status);
+
+ GdipDeleteBrush((GpBrush *) brush);
+}
+