@@ -21,25 +21,56 @@ public function testDecimal(): void
2121 {
2222 $ model = Casting::query ()->create (['decimalNumber ' => 100.99 ]);
2323
24- self ::assertInstanceOf (Decimal128::class, $ model ->decimalNumber );
24+ self ::assertIsString ($ model ->decimalNumber );
25+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
2526 self ::assertEquals ('100.99 ' , $ model ->decimalNumber );
2627
2728 $ model ->update (['decimalNumber ' => 9999.9 ]);
2829
29- self ::assertInstanceOf (Decimal128::class, $ model ->decimalNumber );
30+ self ::assertIsString ($ model ->decimalNumber );
31+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
3032 self ::assertEquals ('9999.90 ' , $ model ->decimalNumber );
33+
34+ $ model ->update (['decimalNumber ' => 9999.00000009 ]);
35+
36+ self ::assertIsString ($ model ->decimalNumber );
37+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
38+ self ::assertEquals ('9999.00 ' , $ model ->decimalNumber );
3139 }
3240
3341 public function testDecimalAsString (): void
3442 {
3543 $ model = Casting::query ()->create (['decimalNumber ' => '120.79 ' ]);
3644
37- self ::assertInstanceOf (Decimal128::class, $ model ->decimalNumber );
45+ self ::assertIsString ($ model ->decimalNumber );
46+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
3847 self ::assertEquals ('120.79 ' , $ model ->decimalNumber );
3948
4049 $ model ->update (['decimalNumber ' => '795 ' ]);
4150
42- self ::assertInstanceOf (Decimal128::class, $ model ->decimalNumber );
51+ self ::assertIsString ($ model ->decimalNumber );
52+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
4353 self ::assertEquals ('795.00 ' , $ model ->decimalNumber );
54+
55+ $ model ->update (['decimalNumber ' => '1234.99999999999 ' ]);
56+
57+ self ::assertIsString ($ model ->decimalNumber );
58+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
59+ self ::assertEquals ('1235.00 ' , $ model ->decimalNumber );
60+ }
61+
62+ public function testDecimalAsDecimal128 (): void
63+ {
64+ $ model = Casting::query ()->create (['decimalNumber ' => new Decimal128 ('100.99 ' )]);
65+
66+ self ::assertIsString ($ model ->decimalNumber );
67+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
68+ self ::assertEquals ('100.99 ' , $ model ->decimalNumber );
69+
70+ $ model ->update (['decimalNumber ' => new Decimal128 ('9999.9 ' )]);
71+
72+ self ::assertIsString ($ model ->decimalNumber );
73+ self ::assertInstanceOf (Decimal128::class, $ model ->getRawOriginal ('decimalNumber ' ));
74+ self ::assertEquals ('9999.90 ' , $ model ->decimalNumber );
4475 }
4576}
0 commit comments