@@ -982,6 +982,35 @@ public function testCount()
982982 Authorization::reset ();
983983 }
984984
985+ /**
986+ * @depends testFind
987+ */
988+ public function testSum ()
989+ {
990+ Authorization::setRole ('userx ' );
991+ $ sum = static ::getDatabase ()->sum ('movies ' , 'year ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
992+ $ this ->assertEquals (2019 +2019 , $ sum );
993+ $ sum = static ::getDatabase ()->sum ('movies ' , 'year ' );
994+ $ this ->assertEquals (2013 +2019 +2011 +2019 +2025 +2026 , $ sum );
995+ $ sum = static ::getDatabase ()->sum ('movies ' , 'price ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
996+ $ this ->assertEquals (round (39.50 +25.99 , 2 ), round ($ sum , 2 ));
997+ $ sum = static ::getDatabase ()->sum ('movies ' , 'price ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
998+ $ this ->assertEquals (round (39.50 +25.99 , 2 ), round ($ sum , 2 ));
999+
1000+ $ sum = static ::getDatabase ()->sum ('movies ' , 'year ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ])], 1 );
1001+ $ this ->assertEquals (2019 , $ sum );
1002+
1003+ Authorization::unsetRole ('userx ' );
1004+ $ sum = static ::getDatabase ()->sum ('movies ' , 'year ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
1005+ $ this ->assertEquals (2019 +2019 , $ sum );
1006+ $ sum = static ::getDatabase ()->sum ('movies ' , 'year ' );
1007+ $ this ->assertEquals (2013 +2019 +2011 +2019 +2025 , $ sum );
1008+ $ sum = static ::getDatabase ()->sum ('movies ' , 'price ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
1009+ $ this ->assertEquals (round (39.50 +25.99 , 2 ), round ($ sum , 2 ));
1010+ $ sum = static ::getDatabase ()->sum ('movies ' , 'price ' , [new Query ('year ' , Query::TYPE_EQUAL , [2019 ]),]);
1011+ $ this ->assertEquals (round (39.50 +25.99 , 2 ), round ($ sum , 2 ));
1012+ }
1013+
9851014 public function testEncodeDecode ()
9861015 {
9871016 $ collection = new Document ([
0 commit comments