Skip to content
This repository has been archived by the owner on Jan 14, 2018. It is now read-only.

Commit

Permalink
formatted spring android extension
Browse files Browse the repository at this point in the history
  • Loading branch information
rciovati committed Jan 7, 2013
1 parent 034c274 commit c048fc1
Show file tree
Hide file tree
Showing 34 changed files with 1,244 additions and 999 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@

public final class BuildConfig {
public final static boolean DEBUG = true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,47 +11,51 @@

//Thanks to http://stackoverflow.com/questions/2300029/servicetestcaset-getservice
@SmallTest
public class SpringAndroidSpiceServiceTest extends ServiceTestCase< SpringAndroidTestService > {
public class SpringAndroidSpiceServiceTest extends
ServiceTestCase<SpringAndroidTestService> {

private static final int REQUEST_COMPLETION_TIMEOUT = 1000;
private SpiceManager spiceManager;

public SpringAndroidSpiceServiceTest() {
super( SpringAndroidTestService.class );
super(SpringAndroidTestService.class);
}

@Override
protected void setUp() throws Exception {
super.setUp();
spiceManager = new SpiceManager( SpringAndroidTestService.class );
spiceManager = new SpiceManager(SpringAndroidTestService.class);
}

@Override
protected void tearDown() throws Exception {
shutdownService();
if ( spiceManager.isStarted() ) {
spiceManager.shouldStopAndJoin( REQUEST_COMPLETION_TIMEOUT );
if (spiceManager.isStarted()) {
spiceManager.shouldStopAndJoin(REQUEST_COMPLETION_TIMEOUT);
}
super.tearDown();
}

public void test_createRequestFactory_returns_default_factory() {
Intent startIntent = new Intent();
startIntent.setClass( getContext(), SpringAndroidTestService.class );
startService( startIntent );
assertNotNull( getService().createRestTemplate() );
startIntent.setClass(getContext(), SpringAndroidTestService.class);
startService(startIntent);
assertNotNull(getService().createRestTemplate());
}

public void test_addRequest_injects_request_factory() throws InterruptedException {
public void test_addRequest_injects_request_factory()
throws InterruptedException {
// given
spiceManager.start( getContext() );
SpringAndroidSpiceRequestStub springAndroidSpiceRequest = new SpringAndroidSpiceRequestStub( Weather.class );
spiceManager.start(getContext());
SpringAndroidSpiceRequestStub springAndroidSpiceRequest = new SpringAndroidSpiceRequestStub(
Weather.class);

// when
spiceManager.execute( springAndroidSpiceRequest, new RequestListenerStub< Weather >() );
springAndroidSpiceRequest.await( REQUEST_COMPLETION_TIMEOUT );
spiceManager.execute(springAndroidSpiceRequest,
new RequestListenerStub<Weather>());
springAndroidSpiceRequest.await(REQUEST_COMPLETION_TIMEOUT);

// test
assertNotNull( springAndroidSpiceRequest.getRestTemplate() );
assertNotNull(springAndroidSpiceRequest.getRestTemplate());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,25 @@

@SmallTest
public class InFileWeatherPersisterTest extends InstrumentationTestCase {
private static final long FIVE_SECONDS = 5
* DurationInMillis.ONE_SECOND;
private static final int FIVE_HUNDRED = 500;
private static final String TEST_TEMP_UNIT = "C";
private static final String TEST_TEMP = "28";
private static final String TEST_TEMP2 = "30"; // still sunny
private InFileObjectPersister< WeatherResult > dataPersistenceManager;
private static final String FILE_NAME = "toto";
private static final String FILE_NAME2 = "tutu";
private InFileObjectPersister<WeatherResult> dataPersistenceManager;

@Override
protected void setUp() throws Exception {
super.setUp();
Application application = (Application) getInstrumentation().getTargetContext().getApplicationContext();
GsonObjectPersisterFactory factory = new GsonObjectPersisterFactory( application );
dataPersistenceManager = factory.createObjectPersister( WeatherResult.class );
Application application = (Application) getInstrumentation()
.getTargetContext().getApplicationContext();
GsonObjectPersisterFactory factory = new GsonObjectPersisterFactory(
application);
dataPersistenceManager = factory
.createObjectPersister(WeatherResult.class);
}

@Override
Expand All @@ -37,153 +45,190 @@ protected void tearDown() throws Exception {
}

public void test_canHandleClientRequestStatus() {
boolean canHandleClientWeatherResult = dataPersistenceManager.canHandleClass( WeatherResult.class );
assertEquals( true, canHandleClientWeatherResult );
boolean canHandleClientWeatherResult = dataPersistenceManager
.canHandleClass(WeatherResult.class);
assertEquals(true, canHandleClientWeatherResult);
}

public void test_saveDataAndReturnData() throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

// WHEN
WeatherResult weatherReturned = dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, "weather.json" );
WeatherResult weatherReturned = dataPersistenceManager
.saveDataToCacheAndReturnData(weatherRequestStatus, "weather.json");

// THEN
assertEquals( TEST_TEMP, weatherReturned.getWeather().getCurren_weather().get( 0 ).getTemp() );
assertEquals(TEST_TEMP, weatherReturned.getWeather()
.getCurren_weather().get(0).getTemp());
}

public void test_saveDataAndReturnData_async() throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

// WHEN
dataPersistenceManager.setAsyncSaveEnabled( true );
WeatherResult weatherReturned = dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, "weather.json" );
dataPersistenceManager.setAsyncSaveEnabled(true);
WeatherResult weatherReturned = dataPersistenceManager
.saveDataToCacheAndReturnData(weatherRequestStatus, "weather.json");

// THEN
( (GsonObjectPersister< ? >) dataPersistenceManager ).awaitForSaveAsyncTermination( 500, TimeUnit.MILLISECONDS );
assertEquals( TEST_TEMP, weatherReturned.getWeather().getCurren_weather().get( 0 ).getTemp() );
((GsonObjectPersister<?>) dataPersistenceManager)
.awaitForSaveAsyncTermination(FIVE_HUNDRED, TimeUnit.MILLISECONDS);
assertEquals(TEST_TEMP, weatherReturned.getWeather()
.getCurren_weather().get(0).getTemp());
}

public void test_loadDataFromCache_no_expiracy() throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);
dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);

// WHEN
WeatherResult weatherReturned = dataPersistenceManager.loadDataFromCache( FILE_NAME, DurationInMillis.ALWAYS );
WeatherResult weatherReturned = dataPersistenceManager
.loadDataFromCache(FILE_NAME, DurationInMillis.ALWAYS);

// THEN
assertEquals( TEST_TEMP, weatherReturned.getWeather().getCurren_weather().get( 0 ).getTemp() );
assertEquals(TEST_TEMP, weatherReturned.getWeather()
.getCurren_weather().get(0).getTemp());
}

public void test_loadDataFromCache_not_expired() throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);

// WHEN
WeatherResult weatherReturned = dataPersistenceManager.loadDataFromCache( FILE_NAME, DurationInMillis.ONE_SECOND );
WeatherResult weatherReturned = dataPersistenceManager
.loadDataFromCache(FILE_NAME, DurationInMillis.ONE_SECOND);

// THEN
assertEquals( TEST_TEMP, weatherReturned.getWeather().getCurren_weather().get( 0 ).getTemp() );
assertEquals(TEST_TEMP, weatherReturned.getWeather()
.getCurren_weather().get(0).getTemp());
}

public void test_loadDataFromCache_expired() throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
File cachedFile = ( (GsonObjectPersister< ? >) dataPersistenceManager ).getCacheFile( FILE_NAME );
cachedFile.setLastModified( System.currentTimeMillis() - 5 * DurationInMillis.ONE_SECOND );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);
File cachedFile = ((GsonObjectPersister<?>) dataPersistenceManager)
.getCacheFile(FILE_NAME);
cachedFile.setLastModified(System.currentTimeMillis() - FIVE_SECONDS);

// WHEN
WeatherResult weatherReturned = dataPersistenceManager.loadDataFromCache( FILE_NAME, DurationInMillis.ONE_SECOND );
WeatherResult weatherReturned = dataPersistenceManager
.loadDataFromCache(FILE_NAME, DurationInMillis.ONE_SECOND);

// THEN
assertNull( weatherReturned );
assertNull(weatherReturned);
}

public void test_loadAllDataFromCache_with_one_request_in_cache() throws Exception {
public void test_loadAllDataFromCache_with_one_request_in_cache()
throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);

// WHEN
List< WeatherResult > listWeatherResult = dataPersistenceManager.loadAllDataFromCache();
List<WeatherResult> listWeatherResult = dataPersistenceManager
.loadAllDataFromCache();

// THEN
assertNotNull( listWeatherResult );
assertEquals( 1, listWeatherResult.size() );
assertEquals( weatherRequestStatus, listWeatherResult.get( 0 ) );
assertNotNull(listWeatherResult);
assertEquals(1, listWeatherResult.size());
assertEquals(weatherRequestStatus, listWeatherResult.get(0));
}

public void test_loadAllDataFromCache_with_two_requests_in_cache() throws Exception {
public void test_loadAllDataFromCache_with_two_requests_in_cache()
throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);

WeatherResult weatherRequestStatus2 = buildWeather( TEST_TEMP2, TEST_TEMP_UNIT );
final String FILE_NAME2 = "tutu";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus2, FILE_NAME2 );
WeatherResult weatherRequestStatus2 = buildWeather(TEST_TEMP2,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus2, FILE_NAME2);

// WHEN
List< WeatherResult > listWeatherResult = dataPersistenceManager.loadAllDataFromCache();
List<WeatherResult> listWeatherResult = dataPersistenceManager
.loadAllDataFromCache();

// THEN
assertNotNull( listWeatherResult );
assertEquals( 2, listWeatherResult.size() );
assertTrue( listWeatherResult.contains( weatherRequestStatus ) );
assertTrue( listWeatherResult.contains( weatherRequestStatus2 ) );
assertNotNull(listWeatherResult);
assertEquals(2, listWeatherResult.size());
assertTrue(listWeatherResult.contains(weatherRequestStatus));
assertTrue(listWeatherResult.contains(weatherRequestStatus2));
}

public void test_loadAllDataFromCache_with_no_requests_in_cache() throws Exception {
public void test_loadAllDataFromCache_with_no_requests_in_cache()
throws Exception {
// GIVEN

// WHEN
List< WeatherResult > listWeatherResult = dataPersistenceManager.loadAllDataFromCache();
List<WeatherResult> listWeatherResult = dataPersistenceManager
.loadAllDataFromCache();

// THEN
assertNotNull( listWeatherResult );
assertTrue( listWeatherResult.isEmpty() );
assertNotNull(listWeatherResult);
assertTrue(listWeatherResult.isEmpty());
}

public void test_removeDataFromCache_when_two_requests_in_cache_and_one_removed() throws Exception {
public void test_removeDataFromCache_when_two_requests_in_cache_and_one_removed()
throws Exception {
// GIVEN
WeatherResult weatherRequestStatus = buildWeather( TEST_TEMP, TEST_TEMP_UNIT );
final String FILE_NAME = "toto";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus, FILE_NAME );
WeatherResult weatherRequestStatus = buildWeather(TEST_TEMP,
TEST_TEMP_UNIT);

dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus, FILE_NAME);

WeatherResult weatherRequestStatus2 = buildWeather(TEST_TEMP2,
TEST_TEMP_UNIT);

WeatherResult weatherRequestStatus2 = buildWeather( TEST_TEMP2, TEST_TEMP_UNIT );
final String FILE_NAME2 = "tutu";
dataPersistenceManager.saveDataToCacheAndReturnData( weatherRequestStatus2, FILE_NAME2 );
dataPersistenceManager.saveDataToCacheAndReturnData(
weatherRequestStatus2, FILE_NAME2);

dataPersistenceManager.removeDataFromCache( FILE_NAME2 );
dataPersistenceManager.removeDataFromCache(FILE_NAME2);

// WHEN
List< WeatherResult > listWeatherResult = dataPersistenceManager.loadAllDataFromCache();
List<WeatherResult> listWeatherResult = dataPersistenceManager
.loadAllDataFromCache();

// THEN
assertNotNull( listWeatherResult );
assertEquals( 1, listWeatherResult.size() );
assertTrue( listWeatherResult.contains( weatherRequestStatus ) );
assertFalse( listWeatherResult.contains( weatherRequestStatus2 ) );
assertNotNull(listWeatherResult);
assertEquals(1, listWeatherResult.size());
assertTrue(listWeatherResult.contains(weatherRequestStatus));
assertFalse(listWeatherResult.contains(weatherRequestStatus2));
}

private WeatherResult buildWeather( String temp, String tempUnit ) {
private WeatherResult buildWeather(String temp, String tempUnit) {
WeatherResult weatherRequestStatus = new WeatherResult();
Weather weather = new Weather();
List< Curren_weather > currents = new ArrayList< Curren_weather >();
List<Curren_weather> currents = new ArrayList<Curren_weather>();
Curren_weather current_weather = new Curren_weather();
current_weather.setTemp( temp );
current_weather.setTemp_unit( tempUnit );
currents.add( current_weather );
weather.setCurren_weather( currents );
weatherRequestStatus.setWeather( weather );
current_weather.setTemp(temp);
current_weather.setTemp_unit(tempUnit);
currents.add(current_weather);
weather.setCurren_weather(currents);
weatherRequestStatus.setWeather(weather);
return weatherRequestStatus;
}
}
Loading

0 comments on commit c048fc1

Please sign in to comment.