@@ -48,12 +48,12 @@ public void TestFixtureSetup()
48
48
}
49
49
50
50
[ Test ]
51
- public void TestBitmap ( )
51
+ public void TestDefaultBitmap ( )
52
52
{
53
53
if ( TestEnvironment . IsMono )
54
54
{
55
- // this test does not work in Mono. Skipping for the time being
56
- // CSHARP-389
55
+ // This test does not work in Mono. Bits 57 and 61 are 255 when
56
+ // the Bitmap is recreated upon retrieval from the database
57
57
return ;
58
58
}
59
59
var bitmap = new Bitmap ( 1 , 2 ) ;
@@ -63,8 +63,23 @@ public void TestBitmap()
63
63
var r = _collection . FindOne ( ) ;
64
64
Assert . IsInstanceOf < C > ( r ) ;
65
65
Assert . IsInstanceOf < Bitmap > ( r . I ) ;
66
- Assert . AreEqual ( 1 , r . B . Width ) ;
67
- Assert . AreEqual ( 2 , r . B . Height ) ;
66
+ Assert . AreEqual ( bitmap . Width , r . B . Width ) ;
67
+ Assert . AreEqual ( bitmap . Height , r . B . Height ) ;
68
+ Assert . IsTrue ( GetBytes ( bitmap ) . SequenceEqual ( GetBytes ( r . B ) ) ) ;
69
+ }
70
+
71
+ [ Test ]
72
+ public void TestBitmap ( )
73
+ {
74
+ var bitmap = GetTestBitmap ( ) ;
75
+ var c = new C { I = bitmap , B = bitmap } ;
76
+ _collection . RemoveAll ( ) ;
77
+ _collection . Insert ( c ) ;
78
+ var r = _collection . FindOne ( ) ;
79
+ Assert . IsInstanceOf < C > ( r ) ;
80
+ Assert . IsInstanceOf < Bitmap > ( r . I ) ;
81
+ Assert . AreEqual ( bitmap . Width , r . B . Width ) ;
82
+ Assert . AreEqual ( bitmap . Height , r . B . Height ) ;
68
83
Assert . IsTrue ( GetBytes ( bitmap ) . SequenceEqual ( GetBytes ( r . B ) ) ) ;
69
84
}
70
85
@@ -88,5 +103,22 @@ private byte[] GetBytes(Bitmap bitmap)
88
103
return stream . ToArray ( ) ;
89
104
}
90
105
}
91
- }
106
+
107
+ private Bitmap GetTestBitmap ( )
108
+ {
109
+ var bitmap = new Bitmap ( 2 , 2 , PixelFormat . Format32bppRgb ) ;
110
+ for ( int x = 0 ; x < bitmap . Height ; ++ x )
111
+ {
112
+ for ( int y = 0 ; y < bitmap . Width ; ++ y )
113
+ {
114
+ bitmap . SetPixel ( x , y , Color . White ) ;
115
+ }
116
+ }
117
+ for ( int x = 0 ; x < bitmap . Height ; ++ x )
118
+ {
119
+ bitmap . SetPixel ( x , x , Color . Red ) ;
120
+ }
121
+ return bitmap ;
122
+ }
123
+ }
92
124
}
0 commit comments