package com.pugh.sockso; import com.pugh.sockso.events.LatestVersionEvent; import com.pugh.sockso.events.LatestVersionListener; import com.pugh.sockso.tests.SocksoTestCase; import com.pugh.sockso.tests.MyHttpURLConnection; public class VersionCheckerTest extends SocksoTestCase { private Properties p; public void setUp() { p = new StringProperties(); } public void testListenerReceivesEvent() { VersionChecker v = new VersionChecker( p ); VersionCheckerTestListener l = new VersionCheckerTestListener(); v.addLatestVersionListener( l ); v.fireLatestVersionEvent( "1.2.1" ); assertTrue( l.gotEvent ); } public void testVersionFetchedCorrectlyFromUrlConnection() { MyHttpURLConnection cnn = new MyHttpURLConnection( "1.2.1" ); VersionChecker v = new VersionChecker( p ); VersionCheckerTestListener l = new VersionCheckerTestListener(); v.addLatestVersionListener( l ); v.fetchLatestVersionFrom( cnn ); assertEquals( l.version, "1.2.1" ); } public void testFetchingATwoPartVersionNumber() { MyHttpURLConnection cnn = new MyHttpURLConnection( "1.2" ); VersionChecker v = new VersionChecker( p ); VersionCheckerTestListener l = new VersionCheckerTestListener(); v.addLatestVersionListener( l ); v.fetchLatestVersionFrom( cnn ); assertEquals( l.version, "1.2" ); } public void testNothingFetchedWhenVersionCheckingDisabled() { p.set( Constants.VERSION_CHECK_DISABLED, p.YES ); MyHttpURLConnection cnn = new MyHttpURLConnection( "1.2" ); VersionChecker v = new VersionChecker( p ); VersionCheckerTestListener l = new VersionCheckerTestListener(); v.addLatestVersionListener( l ); v.fetchLatestVersionFrom( cnn ); assertEquals( l.version, "" ); } } class VersionCheckerTestListener implements LatestVersionListener { public boolean gotEvent = false; public String version = ""; public void latestVersionReceived( final LatestVersionEvent evt ) { gotEvent = true; version = evt.getVersion(); } }