def setUp(self):
        descStoreTest = os.path.realpath(
            os.path.dirname(__file__)) + '/descStoreTest'
        if not os.path.isdir(descStoreTest):
            os.makedirs(descStoreTest)

        self.descDir = os.path.realpath(descStoreTest)
        self.trackPointStore = TrackPointFileStore(self.descDir)
 def setUp(self):
     descStoreTest = os.path.realpath(os.path.dirname(__file__)) + '/descStoreTest'
     if not os.path.isdir(descStoreTest): 
         os.makedirs(descStoreTest);
     
     self.descDir = os.path.realpath(descStoreTest)
     self.trackPointStore = TrackPointFileStore(self.descDir)
    def setUp(self):
        currentDir = os.path.dirname(__file__)
        self.fileLog = fileLog = os.path.realpath(currentDir) + '/1msource.log'
        self.descDir = descDir = os.path.realpath(
            os.path.realpath(currentDir) + '/../test')

        trackPointStoreStrategy = TrackPointFileStore(descDir)
        trackPointLineParseStrategy = ParserLine()
        self.heatClickLog = ClickHeatLog(fileLog, trackPointLineParseStrategy,
                                         trackPointStoreStrategy)
class TestTrackPointFileStoreSuccess(unittest.TestCase):

    def setUp(self):
        descStoreTest = os.path.realpath(os.path.dirname(__file__)) + '/descStoreTest'
        if not os.path.isdir(descStoreTest): 
            os.makedirs(descStoreTest);
        
        self.descDir = os.path.realpath(descStoreTest)
        self.trackPointStore = TrackPointFileStore(self.descDir)
        
    def tearDown(self):
        #remove all content in folder 
        shutil.rmtree(self.descDir)
#        pass
    
    def testSaveTrackPointMakeDescFolderBySiteNameAndGroupName(self):
        trackPoint = TrackPoint(x='1',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
       
        self.assertFalse(os.path.exists(self.descDir+'/mimo,home'))
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.assertTrue(os.path.isdir(self.descDir+'/mimo,home'))
    
    def testSaveTrackPointMakeFileLogDatabaseByDay(self):
        trackPoint = TrackPoint(x='1',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.assertTrue(os.path.isfile(self.descDir+'/mimo,home/2012-10-07.log'))
        self.assertTrue(os.path.isfile(self.descDir+'/mimo,home/url.txt'))
    
    def testSaveTrackPointToSameDescDataIntegrity(self):
        trackPoint = TrackPoint(x='1',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
        trackPoint2 = TrackPoint(x='2',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.trackPointStore.saveTrackPoint(trackPoint2)
        
        fileUrlOpen = io.open(self.descDir+'/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline()) 
        fileUrlOpen.close()
        
        fileDayLogOpen = io.open(self.descDir+'/mimo,home/2012-10-07.log', 'r')
        self.assertEqual('1|2|1024|firefox|1\n',  fileDayLogOpen.readline())
        self.assertEqual('2|2|1024|firefox|1\n',  fileDayLogOpen.readline())
        fileDayLogOpen.close()
        
    def testSaveTrackPointDataIntegrityWithMultiTrackPointMultiFolder(self):
        trackPoint = TrackPoint(x='1',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
        trackPoint2 = TrackPoint(x='2',y='2',width='1024',browser='chrome',c='1',referUrl='http://www.vnexpress.com',day='2012-10-07',site='mimo',group='profile')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.trackPointStore.saveTrackPoint(trackPoint2)
        
        fileUrlOpen = io.open(self.descDir+'/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline()) 
        fileUrlOpen.close()
        
        fileUrlOpen = io.open(self.descDir+'/mimo,profile/url.txt', 'r')
        self.assertEqual('http://www.vnexpress.com>0>0>0', fileUrlOpen.readline()) 
        fileUrlOpen.close()
        
        fileDayLogOpen = io.open(self.descDir+'/mimo,home/2012-10-07.log', 'r')
        self.assertEqual('1|2|1024|firefox|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()
        
        fileDayLogOpen = io.open(self.descDir+'/mimo,profile/2012-10-07.log', 'r')
        self.assertEqual('2|2|1024|chrome|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()
            
    def testSaveTrackPointsDataIntegrityWithMultiTrackPointMultiFolder(self):
        trackPoint = TrackPoint(x='1',y='2',width='1024',browser='firefox',c='1',referUrl='http://www.dantri.com',day='2012-10-07',site='mimo',group='home')
        trackPoint2 = TrackPoint(x='2',y='2',width='1024',browser='chrome',c='1',referUrl='http://www.vnexpress.com',day='2012-10-07',site='mimo',group='profile')
        self.trackPointStore.saveTrackPoints([trackPoint,trackPoint2])
        
        fileUrlOpen = io.open(self.descDir+'/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline()) 
        fileUrlOpen.close()
        
        fileUrlOpen = io.open(self.descDir+'/mimo,profile/url.txt', 'r')
        self.assertEqual('http://www.vnexpress.com>0>0>0', fileUrlOpen.readline()) 
        fileUrlOpen.close()
        
        fileDayLogOpen = io.open(self.descDir+'/mimo,home/2012-10-07.log', 'r')
        self.assertEqual('1|2|1024|firefox|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()
        
        fileDayLogOpen = io.open(self.descDir+'/mimo,profile/2012-10-07.log', 'r')
        self.assertEqual('2|2|1024|chrome|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()
class TestTrackPointFileStoreSuccess(unittest.TestCase):
    def setUp(self):
        descStoreTest = os.path.realpath(
            os.path.dirname(__file__)) + '/descStoreTest'
        if not os.path.isdir(descStoreTest):
            os.makedirs(descStoreTest)

        self.descDir = os.path.realpath(descStoreTest)
        self.trackPointStore = TrackPointFileStore(self.descDir)

    def tearDown(self):
        #remove all content in folder
        shutil.rmtree(self.descDir)


#        pass

    def testSaveTrackPointMakeDescFolderBySiteNameAndGroupName(self):
        trackPoint = TrackPoint(x='1',
                                y='2',
                                width='1024',
                                browser='firefox',
                                c='1',
                                referUrl='http://www.dantri.com',
                                day='2012-10-07',
                                site='mimo',
                                group='home')

        self.assertFalse(os.path.exists(self.descDir + '/mimo,home'))
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.assertTrue(os.path.isdir(self.descDir + '/mimo,home'))

    def testSaveTrackPointMakeFileLogDatabaseByDay(self):
        trackPoint = TrackPoint(x='1',
                                y='2',
                                width='1024',
                                browser='firefox',
                                c='1',
                                referUrl='http://www.dantri.com',
                                day='2012-10-07',
                                site='mimo',
                                group='home')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.assertTrue(
            os.path.isfile(self.descDir + '/mimo,home/2012-10-07.log'))
        self.assertTrue(os.path.isfile(self.descDir + '/mimo,home/url.txt'))

    def testSaveTrackPointToSameDescDataIntegrity(self):
        trackPoint = TrackPoint(x='1',
                                y='2',
                                width='1024',
                                browser='firefox',
                                c='1',
                                referUrl='http://www.dantri.com',
                                day='2012-10-07',
                                site='mimo',
                                group='home')
        trackPoint2 = TrackPoint(x='2',
                                 y='2',
                                 width='1024',
                                 browser='firefox',
                                 c='1',
                                 referUrl='http://www.dantri.com',
                                 day='2012-10-07',
                                 site='mimo',
                                 group='home')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.trackPointStore.saveTrackPoint(trackPoint2)

        fileUrlOpen = io.open(self.descDir + '/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline())
        fileUrlOpen.close()

        fileDayLogOpen = io.open(self.descDir + '/mimo,home/2012-10-07.log',
                                 'r')
        self.assertEqual('1|2|1024|firefox|1\n', fileDayLogOpen.readline())
        self.assertEqual('2|2|1024|firefox|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()

    def testSaveTrackPointDataIntegrityWithMultiTrackPointMultiFolder(self):
        trackPoint = TrackPoint(x='1',
                                y='2',
                                width='1024',
                                browser='firefox',
                                c='1',
                                referUrl='http://www.dantri.com',
                                day='2012-10-07',
                                site='mimo',
                                group='home')
        trackPoint2 = TrackPoint(x='2',
                                 y='2',
                                 width='1024',
                                 browser='chrome',
                                 c='1',
                                 referUrl='http://www.vnexpress.com',
                                 day='2012-10-07',
                                 site='mimo',
                                 group='profile')
        self.trackPointStore.saveTrackPoint(trackPoint)
        self.trackPointStore.saveTrackPoint(trackPoint2)

        fileUrlOpen = io.open(self.descDir + '/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline())
        fileUrlOpen.close()

        fileUrlOpen = io.open(self.descDir + '/mimo,profile/url.txt', 'r')
        self.assertEqual('http://www.vnexpress.com>0>0>0',
                         fileUrlOpen.readline())
        fileUrlOpen.close()

        fileDayLogOpen = io.open(self.descDir + '/mimo,home/2012-10-07.log',
                                 'r')
        self.assertEqual('1|2|1024|firefox|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()

        fileDayLogOpen = io.open(self.descDir + '/mimo,profile/2012-10-07.log',
                                 'r')
        self.assertEqual('2|2|1024|chrome|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()

    def testSaveTrackPointsDataIntegrityWithMultiTrackPointMultiFolder(self):
        trackPoint = TrackPoint(x='1',
                                y='2',
                                width='1024',
                                browser='firefox',
                                c='1',
                                referUrl='http://www.dantri.com',
                                day='2012-10-07',
                                site='mimo',
                                group='home')
        trackPoint2 = TrackPoint(x='2',
                                 y='2',
                                 width='1024',
                                 browser='chrome',
                                 c='1',
                                 referUrl='http://www.vnexpress.com',
                                 day='2012-10-07',
                                 site='mimo',
                                 group='profile')
        self.trackPointStore.saveTrackPoints([trackPoint, trackPoint2])

        fileUrlOpen = io.open(self.descDir + '/mimo,home/url.txt', 'r')
        self.assertEqual('http://www.dantri.com>0>0>0', fileUrlOpen.readline())
        fileUrlOpen.close()

        fileUrlOpen = io.open(self.descDir + '/mimo,profile/url.txt', 'r')
        self.assertEqual('http://www.vnexpress.com>0>0>0',
                         fileUrlOpen.readline())
        fileUrlOpen.close()

        fileDayLogOpen = io.open(self.descDir + '/mimo,home/2012-10-07.log',
                                 'r')
        self.assertEqual('1|2|1024|firefox|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()

        fileDayLogOpen = io.open(self.descDir + '/mimo,profile/2012-10-07.log',
                                 'r')
        self.assertEqual('2|2|1024|chrome|1\n', fileDayLogOpen.readline())
        fileDayLogOpen.close()