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

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

Go to the documentation of this file.
00001 
00009 #include "testfileinfo.h"
00010 
00011 Dedupe::Test::TFileInfoFixture::TFileInfoFixture() : Env( "testorder" ),
00012                                                      PathToTestfiles( "" )
00013 {}
00014 
00015 Dedupe::Test::TFileInfoFixture::~TFileInfoFixture()
00016 {
00017   Env.DeleteCreated();
00018 }
00019 
00020 BOOST_FIXTURE_TEST_SUITE( TFileInfo, Dedupe::Test::TFileInfoFixture )
00021   BOOST_AUTO_TEST_CASE( TFileInfoConstructByFile )
00022   {
00023     PathToTestfiles = Env.CreateFile( "",
00024                                       "File.test",
00025                                       Env.CreateRandomInt( 4, 8000 ) );
00026 
00027     Dedupe::FileInfo TestFile( PathToTestfiles );
00028 
00029     time_t timestamp = boost::filesystem::last_write_time( PathToTestfiles );
00030     size_t filesize = boost::filesystem::file_size(PathToTestfiles );
00031 
00032     BOOST_CHECK_EQUAL( TestFile.GetSize(), filesize );
00033     BOOST_CHECK_EQUAL( TestFile.GetDateChanged(), timestamp );
00034     BOOST_CHECK_EQUAL( TestFile.GetExisting(), true );
00035     BOOST_CHECK_EQUAL( TestFile.GetPath(), PathToTestfiles );
00036     BOOST_CHECK_EQUAL( TestFile.GetStatus(), Dedupe::FileInfo::FileOK );
00037     BOOST_CHECK_EQUAL( TestFile.GetType(), Dedupe::FileInfo::TFile );
00038   }
00039 
00040   BOOST_AUTO_TEST_CASE( TFileInfoConstructByDirectory )
00041   {
00042     Dedupe::FilePath Path = Env.CreateRandomPathstring();
00043     PathToTestfiles = Env.CreateDirectory( Path );
00044 
00045     Dedupe::FileInfo TestFile( PathToTestfiles );
00046 
00047     time_t timestamp = boost::filesystem::last_write_time( PathToTestfiles );
00048 
00049     BOOST_CHECK_EQUAL( TestFile.GetDateChanged(), timestamp );
00050     BOOST_CHECK_EQUAL( TestFile.GetExisting(), true );
00051     BOOST_CHECK_EQUAL( TestFile.GetPath(), PathToTestfiles );
00052     BOOST_CHECK_EQUAL( TestFile.GetStatus(), Dedupe::FileInfo::FileOK );
00053     BOOST_CHECK_EQUAL( TestFile.GetType(), Dedupe::FileInfo::TDirectory );
00054   }
00055 
00056   BOOST_AUTO_TEST_CASE( TFileInfoConstructByNonExisting )
00057   {
00058     Env.DeleteCreated();
00059     PathToTestfiles = Env.RootDir;
00060     PathToTestfiles /= "I/dont/exist";
00061 
00062     Dedupe::FileInfo TestFile( PathToTestfiles );
00063 
00064     BOOST_CHECK_EQUAL( TestFile.GetDateChanged(), 0 );
00065     BOOST_CHECK_EQUAL( TestFile.GetExisting(), false );
00066     BOOST_CHECK_EQUAL( TestFile.GetPath(), PathToTestfiles );
00067     BOOST_CHECK_EQUAL( TestFile.GetStatus(), Dedupe::FileInfo::IgnoreFile );
00068     BOOST_CHECK_EQUAL( TestFile.GetType(), Dedupe::FileInfo::TNotAvailable );
00069   }
00070 
00071   BOOST_AUTO_TEST_CASE( TFileInfoConstructManuallyWithoutHash )
00072   {
00073     PathToTestfiles = Env.CreateRandomPathstring();
00074 
00075     size_t Size = Env.CreateRandomInt( 300, 69049 );
00076     time_t Date = Env.CreateRandomInt( 20, 2983482 );
00077     Dedupe::FileInfo::FileType Type = Dedupe::FileInfo::TSymbolicLink;
00078     bool Keep( true );
00079 
00080     Dedupe::FileInfo TestFile( PathToTestfiles, Size,Date, Type, Keep );
00081 
00082 
00083     BOOST_CHECK_EQUAL( TestFile.GetDateChanged(), Date );
00084     BOOST_CHECK_EQUAL( TestFile.GetExisting(), true );
00085     BOOST_CHECK_EQUAL( TestFile.GetPath(), PathToTestfiles );
00086     BOOST_CHECK_EQUAL( TestFile.GetStatus(), Dedupe::FileInfo::UncheckedFile );
00087     BOOST_CHECK_EQUAL( TestFile.GetType(), Dedupe::FileInfo::TSymbolicLink );
00088     BOOST_CHECK_EQUAL( TestFile.GetKeep(), Keep );
00089   }
00090 
00091    BOOST_AUTO_TEST_CASE( TFileInfoConstructManuallyWithHash )
00092   {
00093     PathToTestfiles = Env.CreateRandomPathstring();
00094 
00095     size_t Size = Env.CreateRandomInt( 300, 69049 );
00096     time_t Date = Env.CreateRandomInt( 20, 2983482 );
00097     Dedupe::FileInfo::FileType Type = Dedupe::FileInfo::TDirectory;
00098 
00099     bool Keep( true );
00100     unsigned long long Hash = Env.CreateRandomInt( 200, 2303484 );
00101 
00102     Dedupe::FileInfo TestFile( PathToTestfiles, Size,Date, Type, Keep, Hash );
00103 
00104     BOOST_CHECK_EQUAL( TestFile.GetDateChanged(), Date );
00105     BOOST_CHECK_EQUAL( TestFile.GetExisting(), true );
00106     BOOST_CHECK_EQUAL( TestFile.GetPath(), PathToTestfiles );
00107     BOOST_CHECK_EQUAL( TestFile.GetStatus(), Dedupe::FileInfo::UncheckedFile );
00108     BOOST_CHECK_EQUAL( TestFile.GetType(), Dedupe::FileInfo::TDirectory );
00109     BOOST_CHECK_EQUAL( TestFile.GetKeep(), Keep );
00110     BOOST_CHECK_EQUAL( TestFile.GetHash(), Hash );
00111   }
00112 
00113   BOOST_AUTO_TEST_CASE( TFileInfoOperators )
00114   {
00115     Env.DeleteCreated();
00116     Dedupe::FilePath TestPath (  Env.CreateFile( "", "Operator.test", 100 ) );
00117 
00118     Dedupe::FileInfo Info1 ( TestPath );
00119     Dedupe::FileInfo Info2 ( TestPath );
00120 
00121     BOOST_CHECK_EQUAL( Info1, Info2 );
00122 
00123     Info2.SetHash( 9584732937 );
00124     BOOST_CHECK( Info1!= Info2 );
00125   }
00126 
00127  BOOST_AUTO_TEST_SUITE_END()

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