• Main Page
  • Namespaces
  • Data Structures
  • Files
  • File List

/www/proggenOrg/dedupe/export/trunk/test/unittest/testdataholding.cpp

Go to the documentation of this file.
00001 
00009  #include "testdataholding.h"
00010 
00011  BOOST_FIXTURE_TEST_SUITE( TDataholding,
00012                           Dedupe::Test::TDataholdingFixture )
00013 
00014   BOOST_AUTO_TEST_CASE( AddAndGetFileInfoFromDatabase )
00015   {
00016     Dedupe::FileInfo Testfile( "Testpath/ieieugfnie/eieiieiei.eiieiee",
00017                                2393993993399,
00018                                93939939,
00019                                Dedupe::FileInfo::TDirectory,
00020                                true,
00021                                7373737772727717848 );
00022 
00023 
00024     Dbs.AddFile( Testfile );
00025 
00026     Dedupe::FileStream Files = Dbs.GetFiles();
00027 
00028     //check if any data is returned from the dbs. Don't use the else line
00029     //without the if watcher to prefent memory violations
00030     //Check if given file is returned correctly from the database
00031     if( Files.size() < 1 ) BOOST_ERROR( "No Data returned from the database" );
00032     else
00033     {
00034       Dedupe::FileStream::iterator CheckFile = Files.begin();
00035 
00036       BOOST_CHECK_EQUAL( Testfile.GetPath(), CheckFile->GetPath() );
00037       BOOST_CHECK_EQUAL( Testfile.GetSize(), CheckFile->GetSize() );
00038       BOOST_CHECK_EQUAL( Testfile.GetDateChanged(), CheckFile->GetDateChanged() );
00039       BOOST_CHECK_EQUAL( Testfile.GetType(), CheckFile->GetType() );
00040       BOOST_CHECK_EQUAL( Testfile.GetKeep(), CheckFile->GetKeep() );
00041       BOOST_CHECK_EQUAL( Testfile.GetHash(), CheckFile->GetHash() );
00042     }
00043 
00044     //Check size of DbsFiles a second time, to make sure that the last
00045     //GetFiles() call clears the old results, before getting the actuell ones
00046     Files.clear();
00047     Files = Dbs.GetFiles();
00048     BOOST_CHECK_EQUAL( Files.size(), 1u );
00049 
00050     //Cleanup the table for the next test
00051     Dbs.SqlExec( "DELETE FROM StoredFiles;" );
00052   }
00053 
00054   BOOST_AUTO_TEST_CASE( TestAddFiles )
00055   {
00056     Dedupe::FileStream FStream;
00057 
00058     //Create 3 FileInfos with different hash-values
00059     Dedupe::FileInfo File1( TestFile ), File2( TestFile ), File3( TestFile );
00060     File2.SetHash( 4595949 );
00061     File3.SetHash( 9838373 );
00062 
00063     //Push them in a stream
00064     FStream.push_back( File1 );
00065     FStream.push_back( File2 );
00066     FStream.push_back( File3 );
00067 
00068     //Add them via AddFiles
00069     Dbs.AddFiles( FStream );
00070 
00071     //Check if 3 files are stored in the database
00072     BOOST_CHECK_EQUAL( Dbs.GetFiles().size(), 3u );
00073 
00074     //Cleanup the table for the next test
00075     Dbs.SqlExec( "DELETE FROM StoredFiles;" );
00076   }
00077 
00078   BOOST_AUTO_TEST_CASE( TestAlreadyInDatabase )
00079   {
00080     Dedupe::FileInfo File( TestFile );
00081     Dbs.AddFile( File );
00082     BOOST_CHECK_EQUAL( Dbs.AlreadyInDatabase( File ), true );
00083     Dbs.SqlExec( "DELETE FROM StoredFiles;");
00084   }
00085 
00086   BOOST_AUTO_TEST_CASE( TestDelFile )
00087   {
00088     Dedupe::FileInfo File( TestFile );
00089 
00090     //Add File in Database
00091     Dbs.AddFile( File );
00092 
00093     //Check if file is there
00094     BOOST_CHECK_EQUAL( Dbs.AlreadyInDatabase( File ), true );
00095 
00096     //Delete and check if file is gone from database
00097     Dbs.DelFile( File );
00098 
00099     BOOST_CHECK_EQUAL( Dbs.AlreadyInDatabase( File ), false );
00100 
00101     Dbs.SqlExec( "DELETE FROM StoredFiles;" );
00102   }
00103 
00104   BOOST_AUTO_TEST_CASE( TestUpdateFile )
00105   {
00106     Dedupe::FileInfo File( TestFile );
00107 
00108     Dbs.AddFile( File );
00109 
00110     unsigned long long OldHash, NewHash;
00111     OldHash = File.GetHash();
00112     NewHash = OldHash + 100;
00113 
00114     File.SetHash( NewHash );
00115 
00116     Dbs.UpdateFile( File );
00117 
00118     Dedupe::FileStream Stream = Dbs.GetFiles();
00119 
00120     BOOST_CHECK_EQUAL( Stream.begin()->GetHash(), NewHash );
00121 
00122     Dbs.SqlExec( "DELETE FROM StoredFiles;" );
00123   }
00124 
00125   BOOST_AUTO_TEST_CASE( CheckHighkommaNormalizer )
00126   {
00127     std::string teststring( "Myli'v\"e" );
00128     Dedupe::FileInfo File( teststring,
00129                            20,
00130                            484848,
00131                            Dedupe::FileInfo::TFile,
00132                            true,
00133                            84848484848);
00134     BOOST_CHECK_NO_THROW( Dbs.AddFile( File ));
00135 
00136     BOOST_CHECK_EQUAL( Dbs.GetFiles().begin()->GetPath(), teststring );
00137 
00138     Dbs.SqlExec( "DELETE FROM StoredFiles;" );
00139   }
00140 
00141  BOOST_AUTO_TEST_SUITE_END()

Generated on Mon Mar 11 2013 12:04:52 for Dedupe by  doxygen 1.7.1