diff options
-rw-r--r-- | src/mongo/SConscript | 2 | ||||
-rw-r--r-- | src/mongo/client/gridfs.cpp | 6 | ||||
-rw-r--r-- | src/mongo/client/gridfs.h | 2 | ||||
-rw-r--r-- | src/mongo/dbtests/gridfstest.cpp | 52 |
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; +} + |