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