UnixDirectoryListingFormatterTest.groovy revision 7d00fd0c9917e59d8ee38543e25fcabb0d04f965
15fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant/*
25fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * Copyright 2008 the original author or authors.
35fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant *
45fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * Licensed under the Apache License, Version 2.0 (the "License");
55fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * you may not use this file except in compliance with the License.
65fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * You may obtain a copy of the License at
75fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant *
85fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant *      http://www.apache.org/licenses/LICENSE-2.0
9cedb7fcc10556aaf4302917913c672b1bc6a1db0Daniel Dunbar *
107112dae6acac544a0271a85d95342c583441e2d1Dan Albert * Unless required by applicable law or agreed to in writing, software
117112dae6acac544a0271a85d95342c583441e2d1Dan Albert * distributed under the License is distributed on an "AS IS" BASIS,
12cedb7fcc10556aaf4302917913c672b1bc6a1db0Daniel Dunbar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cedb7fcc10556aaf4302917913c672b1bc6a1db0Daniel Dunbar * See the License for the specific language governing permissions and
144dc5b2198d1aa4ab585a3d4a87ee9626d681f9f7Dan Albert * limitations under the License.
154dc5b2198d1aa4ab585a3d4a87ee9626d681f9f7Dan Albert */
165fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnantpackage org.mockftpserver.fake.filesystem
175fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
185fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnantimport java.text.SimpleDateFormat
195fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnantimport org.mockftpserver.test.AbstractGroovyTest
205fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
215fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant/**
225fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * Tests for UnixDirectoryListingFormatter
235fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant *
245fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * @version $Revision: 78 $ - $Date: 2008-07-02 20:47:17 -0400 (Wed, 02 Jul 2008) $
255fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant *
265fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant * @author Chris Mair
275fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant */
285fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnantclass UnixDirectoryListingFormatterTest extends AbstractGroovyTest {
295fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
305fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final FILE_NAME = "def.txt"
315fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final DIR_NAME = "etc"
325fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final OWNER = 'owner123'
335fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final GROUP = 'group456'
345fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final SIZE = 1234567L
355fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    static final LAST_MODIFIED = new Date()
365fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
375fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    private formatter
385fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    private dateFormat
395fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    private lastModifiedFormatted
405fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
415fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    // "-rw-rw-r--    1 ftp      ftp           254 Feb 23  2007 robots.txt"
425fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    // "-rw-r--r--    1 ftp      ftp      30014925 Apr 15 00:19 md5.sums.gz"
435fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    // "-rwxr-xr-x   1 c096336  iawebgrp    5778 Dec  1  2005 FU_WyCONN_updateplanaccess.sql"
445fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    // "drwxr-xr-x   2 c096336  iawebgrp    8192 Nov  7  2006 tmp"
455fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    // "drwxr-xr-x   39 ftp      ftp          4096 Mar 19  2004 a"
465fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
475fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    void testFormat_File() {
485fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant        def fileInfo = FileInfo.forFile(FILE_NAME, SIZE, LAST_MODIFIED, OWNER, GROUP)
495fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant        verifyFormat(fileInfo, "-rwxrwxrwx  1 owner123 group456         1234567 $lastModifiedFormatted def.txt")
505fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    }
515fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
525fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    void testFormat_Directory() {
535fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant        def fileInfo = FileInfo.forDirectory(DIR_NAME, LAST_MODIFIED, OWNER, GROUP)
545fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant        verifyFormat(fileInfo, "drwxrwxrwx  1 owner123 group456               0 $lastModifiedFormatted etc")
555fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    }
565fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant
575fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant    void setUp() {
585fec82dc0db3623546038e4a86baa44f749e554fHoward Hinnant        super.setUp()
59        formatter = new UnixDirectoryListingFormatter()
60        dateFormat = new SimpleDateFormat(UnixDirectoryListingFormatter.DATE_FORMAT)
61        lastModifiedFormatted = dateFormat.format(LAST_MODIFIED)
62    }
63
64    private void verifyFormat(FileInfo fileInfo, String expectedResult) {
65        def result = formatter.format(fileInfo)
66        LOG.info("result=  [$result]")
67        LOG.info("expected=[$expectedResult]")
68        assert result == expectedResult
69    }
70
71}