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()