test/TestFileSource.h

00001 /*
00002  * Funambol is a mobile platform developed by Funambol, Inc.
00003  * Copyright (C) 2003 - 2007 Funambol, Inc.
00004  *
00005  * This program is free software; you can redistribute it and/or modify it under
00006  * the terms of the GNU Affero General Public License version 3 as published by
00007  * the Free Software Foundation with the addition of the following permission
00008  * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
00009  * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
00010  * WARRANTY OF NON INFRINGEMENT  OF THIRD PARTY RIGHTS.
00011  *
00012  * This program is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00014  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00015  * details.
00016  *
00017  * You should have received a copy of the GNU Affero General Public License
00018  * along with this program; if not, see http://www.gnu.org/licenses or write to
00019  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
00020  * MA 02110-1301 USA.
00021  *
00022  * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
00023  * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
00024  *
00025  * The interactive user interfaces in modified source and object code versions
00026  * of this program must display Appropriate Legal Notices, as required under
00027  * Section 5 of the GNU Affero General Public License version 3.
00028  *
00029  * In accordance with Section 7(b) of the GNU Affero General Public License
00030  * version 3, these Appropriate Legal Notices must retain the display of the
00031  * "Powered by Funambol" logo. If the display of the logo is not reasonably
00032  * feasible for technical reasons, the Appropriate Legal Notices must display
00033  * the words "Powered by Funambol".
00034  */
00035 
00040 #ifndef _TEST_FILE_SOURCE_H_
00041 #define _TEST_FILE_SOURCE_H_
00042 
00043 #ifdef HAVE_CONFIG_H
00044 # include <config.h>
00045 #endif
00046 
00047 #ifdef ENABLE_INTEGRATION_TESTS
00048 #include "spdm/DeviceManagementNode.h"
00049 #include "client/TestFileSyncSource.h"
00050 #include "base/adapter/PlatformAdapter.h"
00051 #include "spds/spdsutils.h"
00052 #include "client/DMTClientConfig.h"
00053 #include "client/SyncClient.h"
00054 #include "test/ClientTest.h"
00055 #include "base/test.h"
00056 
00057 #include <string>
00058 #include <vector>
00059 #include <iomanip>
00060 #include <memory>
00061 
00062 #ifdef WIN32
00063 #include <direct.h>
00064 #endif
00065 #include <sys/stat.h>
00066 #include "base/globalsdef.h"
00067 
00068 USE_NAMESPACE
00069 
00070 
00159 class TestFileSource : public ClientTest {
00160 public:
00161     TestFileSource(const std::string &id);
00162         
00163     virtual int getNumSources() {
00164         return (int)sources.size();
00165     }
00166 
00167     virtual void getSourceConfig(int source, Config &config);
00168 
00169     virtual ClientTest* getClientB() {
00170         return clientB.get();
00171     }
00172 
00173     virtual bool isB64Enabled() {
00174         return false;
00175     }
00176 
00177     virtual int sync(
00178         const int *activeSources,
00179         SyncMode syncMode,
00180         const CheckSyncReport &checkReport,
00181         long maxMsgSize,
00182         long maxObjSize,
00183         bool loSupport,
00184         const char *encoding = 0);
00185 
00186 private:
00188     std::string clientID;
00189 
00191     std::auto_ptr<TestFileSource> clientB;
00192 
00194     std::vector<std::string> sources;
00195 
00197     std::auto_ptr<DMTClientConfig> config;
00198 
00199     static SyncSource *createSource(ClientTest &client, int source, bool isSourceA) {
00200         // hand work over to real member function
00201         return ((TestFileSource &)client).createSource(source, isSourceA ? "A" : "B");
00202     }
00203 
00204     SyncSource *createSource(int source, const char *trackingSuffix);
00205 };
00206 
00207 #endif // ENABLE_INTEGRATION_TESTS
00208 
00210 #endif // _TEST_FILE_SOURCE_H_

Generated on Wed Jan 14 17:15:37 2009 for Funambol C++ Client Library by  doxygen 1.5.2