summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/SConscript2
-rw-r--r--src/mongo/client/gridfs.cpp6
-rw-r--r--src/mongo/client/gridfs.h2
-rw-r--r--src/mongo/dbtests/gridfstest.cpp52
4 files changed, 60 insertions, 2 deletions
diff --git a/src/mongo/SConscript b/src/mongo/SConscript
index 63a964545d3..ea4b5f0c518 100644
--- a/src/mongo/SConscript
+++ b/src/mongo/SConscript
@@ -402,7 +402,7 @@ env.StaticLibrary('testframework', ['dbtests/framework.cpp'], LIBDEPS=['unittest
test = testEnv.Install(
'#/',
testEnv.Program( "test", [ f for f in Glob( "dbtests/*.cpp" ) if not str( f ).endswith( 'framework.cpp' ) ],
- LIBDEPS=["mongocommon", "serveronly", "coreserver", "coredb", "testframework" ],
+ LIBDEPS=["mongocommon", "serveronly", "coreserver", "coredb", "testframework", "gridfs" ],
_LIBDEPS='$_LIBDEPS_OBJS' ) )
if len(testEnv.subst('$PROGSUFFIX')):
diff --git a/src/mongo/client/gridfs.cpp b/src/mongo/client/gridfs.cpp
index 056502d8888..ddc2e12aeac 100644
--- a/src/mongo/client/gridfs.cpp
+++ b/src/mongo/client/gridfs.cpp
@@ -66,10 +66,14 @@ namespace mongo {
}
void GridFS::setChunkSize(unsigned int size) {
- massert( 13296 , "invalid chunk size is specified", (size == 0));
+ massert( 13296 , "invalid chunk size is specified", (size != 0 ));
_chunkSize = size;
}
+ unsigned int GridFS::getChunkSize() const {
+ return _chunkSize;
+ }
+
BSONObj GridFS::storeFile( const char* data , size_t length , const string& remoteName , const string& contentType) {
char const * const end = data + length;
diff --git a/src/mongo/client/gridfs.h b/src/mongo/client/gridfs.h
index 49a76a5e55f..2406b4bef85 100644
--- a/src/mongo/client/gridfs.h
+++ b/src/mongo/client/gridfs.h
@@ -68,6 +68,8 @@ namespace mongo {
*/
void setChunkSize(unsigned int size);
+ unsigned int getChunkSize() const;
+
/**
* puts the file reference by fileName into the db
* @param fileName local filename relative to process
diff --git a/src/mongo/dbtests/gridfstest.cpp b/src/mongo/dbtests/gridfstest.cpp
new file mode 100644
index 00000000000..9419beb5e22
--- /dev/null
+++ b/src/mongo/dbtests/gridfstest.cpp
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2012 10gen Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "mongo/pch.h"
+
+#include "mongo/client/gridfs.h"
+#include "mongo/dbtests/dbtests.h"
+#include "mongo/util/assert_util.h"
+
+using mongo::DBDirectClient;
+using mongo::GridFS;
+using mongo::MsgAssertionException;
+
+namespace {
+ DBDirectClient _client;
+
+ class SetChunkSizeTest {
+ public:
+ virtual void run() {
+ GridFS grid( _client, "gridtest" );
+ grid.setChunkSize( 5 );
+
+ ASSERT_EQUALS( 5, grid.getChunkSize() );
+ ASSERT_THROWS( grid.setChunkSize( 0 ), MsgAssertionException );
+ ASSERT_EQUALS( 5, grid.getChunkSize() );
+ }
+ };
+
+ class All : public Suite {
+ public:
+ All() : Suite( "gridfs" ) {
+ }
+
+ void setupTests() {
+ add< SetChunkSizeTest >();
+ }
+ } myall;
+}
+