CachePersisterFacadeTest.java :  » Geo » geohunter » com » google » code » geobeagle » xmlimport » Android Open Source

Android Open Source » Geo » geohunter 
geohunter » com » google » code » geobeagle » xmlimport » CachePersisterFacadeTest.java
/*
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */

package com.google.code.geobeagle.xmlimport;

import static org.easymock.EasyMock.expect;
import static org.easymock.classextension.EasyMock.createMock;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import com.google.code.geobeagle.Tags;
import com.google.code.geobeagle.GeocacheFactory.Source;
import com.google.code.geobeagle.cachedetails.CacheDetailsWriter;
import com.google.code.geobeagle.xmlimport.FileFactory;
import com.google.code.geobeagle.xmlimport.GpxImporterDI.MessageHandler;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.modules.junit4.PowerMockRunner;

import android.os.PowerManager.WakeLock;

import java.io.File;
import java.io.IOException;

@RunWith(PowerMockRunner.class)
public class CachePersisterFacadeTest {

    private final CacheDetailsWriter mCacheDetailsWriter = PowerMock
            .createMock(CacheDetailsWriter.class);
    private final CacheTagSqlWriter mCacheTagWriter = PowerMock.createMock(CacheTagSqlWriter.class);
    private final MessageHandler mMessageHandler = PowerMock.createMock(MessageHandler.class);

    @Test
    public void testAttributes() throws IOException {
        mCacheTagWriter.setTag(3, true);
        mCacheTagWriter.container("big");
        mCacheTagWriter.difficulty("difficult");
        mCacheTagWriter.terrain("rocky");
        mCacheTagWriter.cacheType("traditional");

        PowerMock.replayAll();
        final CachePersisterFacade cachePersisterFacade = new CachePersisterFacade(mCacheTagWriter,
                null, null, null, null, null);
        cachePersisterFacade.setTag(3, true);
        cachePersisterFacade.container.text("big");
        cachePersisterFacade.difficulty.text("difficult");
        cachePersisterFacade.terrain.text("rocky");
        cachePersisterFacade.cacheType.text("traditional");
        PowerMock.verifyAll();
    }

    @Test
    public void testCloseTrue() {
        mCacheTagWriter.stopWriting(true);

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, mCacheDetailsWriter, mMessageHandler, null, null)
                .close(true);
        PowerMock.verifyAll();
    }

    @Test
    public void testEnd() {
        mCacheTagWriter.end();

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, null, null, null).end();
        PowerMock.verifyAll();
    }

    @Test
    public void testEndTag() throws IOException {
        mCacheDetailsWriter.close();
        mCacheTagWriter.write(Source.GPX);
        mMessageHandler.updateName("");

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, mCacheDetailsWriter, mMessageHandler, null, null)
                .endCache(Source.GPX);
        PowerMock.verifyAll();
    }

    @Test
    public void testEndTagName() throws IOException {
        mCacheDetailsWriter.close();
        mCacheTagWriter.write(Source.GPX);
        mCacheTagWriter.cacheName("my cache");
        mMessageHandler.updateName("my cache");

        PowerMock.replayAll();
        final CachePersisterFacade cachePersisterFacade = new CachePersisterFacade(mCacheTagWriter,
                null, mCacheDetailsWriter, mMessageHandler, null, null);
        cachePersisterFacade.wptDesc.text("my cache");
        cachePersisterFacade.endCache(Source.GPX);
        PowerMock.verifyAll();
    }

    @Test
    public void testGpxTime() {
        expect(mCacheTagWriter.gpxTime("today")).andReturn(true);

        PowerMock.replayAll();
        assertTrue(new CachePersisterFacade(mCacheTagWriter, null, null, null, null, null)
                .gpxTime("today"));
        PowerMock.verifyAll();
    }

    @Test
    public void testGroundspeakName() throws IOException {
        mCacheTagWriter.cacheName("GC123");

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, mMessageHandler, null, null)
                .groundspeakName.text("GC123");
        PowerMock.verifyAll();
    }

    @Test
    public void testHint() throws IOException {
        mCacheDetailsWriter.writeHint("a hint");

        PowerMock.replayAll();
        new CachePersisterFacade(null, null, mCacheDetailsWriter, null, null,
                null).hint.text("a hint");
        PowerMock.verifyAll();
    }

    @Test
    public void testEmptyHint() throws IOException {
        PowerMock.replayAll();
        new CachePersisterFacade(null, null, mCacheDetailsWriter, null, null,
                null).hint.text("");
        PowerMock.verifyAll();
    }

    @Test
    public void testLine() throws IOException {
        mCacheDetailsWriter.writeLine("some data");

        PowerMock.replayAll();
        new CachePersisterFacade(null, null, mCacheDetailsWriter, null, null, null).line("some data");
        PowerMock.verifyAll();
    }

    @Test
    public void testLogDate() throws IOException {
        mCacheDetailsWriter.writeLogDate("04/30/99");

        PowerMock.replayAll();
        new CachePersisterFacade(null, null, mCacheDetailsWriter, null, null,
                null).logDate.text("04/30/99");
        PowerMock.verifyAll();
    }

    @Test
    public void testNewCache() {
        mCacheTagWriter.clear();

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, null, null, null).startCache();
        PowerMock.verifyAll();
    }

    @Test
    public void testOpen() {
        mMessageHandler.updateSource("GC123");
        mCacheTagWriter.startWriting();
        mCacheTagWriter.gpxName("GC123");

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, mMessageHandler, null, null).open("GC123");
        PowerMock.verifyAll();
    }

    @Test
    public void testPlacedBy() throws IOException {
        mCacheTagWriter.setTag(Tags.MINE, false);
        
        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, mCacheDetailsWriter,
                mMessageHandler, null, "bob").placedBy.text("");
        PowerMock.verifyAll();
        
    }

    @Test
    public void testPlacedByMe() throws IOException {
        mCacheTagWriter.setTag(Tags.MINE, true);
        
        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, mCacheDetailsWriter,
                mMessageHandler, null, "bob").placedBy.text("bob");
        PowerMock.verifyAll();
        
    }
    
    @Test
    public void testStart() {
        FileFactory fileFactory = PowerMock.createMock(FileFactory.class);
        File file = PowerMock.createMock(File.class);

        expect(fileFactory.createFile(CacheDetailsWriter.GEOBEAGLE_DIR)).andReturn(file);
        expect(file.mkdirs()).andReturn(true);

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, fileFactory, null, null, null, null).start();
        PowerMock.verifyAll();
    }

    @Test
    public void testStripIllegalFileChars() {
        assertEquals("boring", CacheDetailsWriter.replaceIllegalFileChars("boring"));
        assertEquals("n_a__s_______t_y__", CacheDetailsWriter
                .replaceIllegalFileChars("n<a\\/s:*?\"<>|t:y\t/"));
    }

    @Test
    public void testSetTag() {
        mCacheTagWriter.setTag(3, true);

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, null, null, null).setTag(3, true);;
        PowerMock.verifyAll();
    }

    @Test
    public void testWpt() {
        mCacheTagWriter.latitudeLongitude("37", "122");
        mCacheDetailsWriter.latitudeLongitude("37", "122");

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, mCacheDetailsWriter, null, null, null).wpt("37",
                "122");
        PowerMock.verifyAll();
    }

    @Test
    public void testWptDesc() throws IOException {
        mCacheTagWriter.cacheName("GC123 by so and so");

        PowerMock.replayAll();
        new CachePersisterFacade(mCacheTagWriter, null, null, mMessageHandler, null, null)
                .wptDesc.text("GC123 by so and so");
        PowerMock.verifyAll();
    }

    @Test
    public void testWptName() throws IOException {
        WakeLock wakeLock = createMock(WakeLock.class);

        mCacheDetailsWriter.open("GC123");
        mCacheDetailsWriter.writeWptName("GC123");
        mCacheTagWriter.id("GC123");
        mMessageHandler.updateWaypointId("GC123");
        wakeLock.acquire(GpxLoader.WAKELOCK_DURATION);

        PowerMock.replayAll();
        CachePersisterFacade cachePersisterFacade = new CachePersisterFacade(mCacheTagWriter, null,
                mCacheDetailsWriter, mMessageHandler, wakeLock, null);
        cachePersisterFacade.wptName.text("GC123");
        PowerMock.verifyAll();
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.