package com.trovebox.android.test;
import java.io.IOException;
import junit.framework.Assert;
import org.apache.http.client.ClientProtocolException;
import org.easymock.EasyMock;
import org.json.JSONException;
import org.powermock.api.easymock.PowerMock;
import android.content.Intent;
import android.support.v4.app.Fragment;
import com.trovebox.android.app.PhotoDetailsActivity;
import com.trovebox.android.app.PhotoDetailsActivity.PhotoDetailsUiFragment;
import com.trovebox.android.common.model.Photo;
import com.trovebox.android.common.net.PhotoResponse;
import com.trovebox.android.common.net.ReturnSizes;
import com.trovebox.android.common.net.TroveboxResponse.RequestType;
import com.trovebox.android.test.net.JSONUtils;
public class PhotoDetailsActivityTest extends
MockedInstrumentationTestCase<PhotoDetailsActivity>
{
private PhotoDetailsActivity activity;
public PhotoDetailsActivityTest() {
super(PhotoDetailsActivity.class);
}
/**
* @see android.test.ActivityInstrumentationTestCase2#setUp()
*/
@Override
protected void setUp() throws Exception {
super.setUp();
}
public void testPreconditions() throws JSONException,
ClientProtocolException, IllegalStateException, IOException
{
// Setup mock calls and their responses
PowerMock.reset(getApiMock());
getApiMock().getPhoto(
(String) EasyMock.anyObject(),
(ReturnSizes) EasyMock.anyObject(),
(String) EasyMock.anyObject(), (String) EasyMock.anyObject()
);
PowerMock
.expectLastCall()
.andReturn(
new PhotoResponse(RequestType.UNKNOWN, JSONUtils.getJson(
getInstrumentation().getContext(),
R.raw.json_photo_get))).times(2);
PowerMock.replayAll();
Intent intent = new Intent();
Photo photo = Photo.fromJson(JSONUtils.getJson(
getInstrumentation().getContext(),
R.raw.json_photo));
intent.putExtra(PhotoDetailsUiFragment.EXTRA_PHOTO, photo);
setActivityIntent(intent);
activity = this.getActivity();
Fragment fragment = activity.getSupportFragmentManager()
.findFragmentById(android.R.id.content);
Assert.assertNotNull(fragment);
Assert.assertTrue(fragment instanceof PhotoDetailsUiFragment);
}
}