package com.kth.baasio.test;
import com.kth.baasio.Baas;
import com.kth.baasio.callback.BaasioCallback;
import com.kth.baasio.callback.BaasioDeviceCallback;
import com.kth.baasio.callback.BaasioDownloadCallback;
import com.kth.baasio.callback.BaasioSignInCallback;
import com.kth.baasio.callback.BaasioSignUpCallback;
import com.kth.baasio.callback.BaasioUploadCallback;
import com.kth.baasio.entity.file.BaasioFile;
import com.kth.baasio.entity.push.BaasioDevice;
import com.kth.baasio.entity.user.BaasioUser;
import com.kth.baasio.exception.BaasioError;
import com.kth.baasio.exception.BaasioException;
import com.kth.baasio.utils.ObjectUtils;
import com.kth.common.utils.LogUtils;
import android.os.AsyncTask;
import android.test.InstrumentationTestCase;
import java.io.File;
import java.util.concurrent.CountDownLatch;
public class Test003File extends InstrumentationTestCase {
private static final String TAG = LogUtils.makeLogTag(Test003File.class);
private static BaasioFile mFile;
private static AsyncTask mGCMRegisterTask;
public Test003File() {
super();
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void test000Init() throws InterruptedException {
Baas.io().init(getInstrumentation().getContext(), BaasioConfig.BAASIO_URL,
BaasioConfig.BAASIO_ID, BaasioConfig.APPLICATION_ID);
final CountDownLatch signal = new CountDownLatch(1);
mGCMRegisterTask = Baas.io().setGcmEnabled(getInstrumentation().getContext(),
UnitTestConfig.PUSH_SHOULD_RECEIVE_TAG, new BaasioDeviceCallback() {
@Override
public void onException(BaasioException e) {
if (!BaasioError.ERROR_GCM_ALREADY_REGISTERED.equals(e.getMessage())) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
} else {
LogUtils.LOGV(TAG, e.toString());
}
signal.countDown();
}
@Override
public void onResponse(BaasioDevice response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
}, BaasioConfig.GCM_SENDER_ID);
if (mGCMRegisterTask != null) {
signal.await();
}
}
public void test001Init_User1SignIn() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser.signOut(getInstrumentation().getContext());
BaasioUser.signInInBackground(getInstrumentation().getContext(),
UnitTestConfig.USER1_USERNAME, UnitTestConfig.COMMON_PASSWORD,
new BaasioSignInCallback() {
@Override
public void onException(BaasioException e) {
LogUtils.LOGV(TAG, e.toString());
signal.countDown();
}
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
});
signal.await();
}
public void test002Init_User1Unsubscribe() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser user = Baas.io().getSignedInUser();
if (!ObjectUtils.isEmpty(user)) {
user.unsubscribeInBackground(getInstrumentation().getContext(),
new BaasioCallback<BaasioUser>() {
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGV(TAG, e.toString());
signal.countDown();
}
});
signal.await();
}
}
public void test003Init_User1SignUp() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser.signUpInBackground(UnitTestConfig.USER1_USERNAME, UnitTestConfig.USER1_USERNAME,
UnitTestConfig.USER1_EMAIL, UnitTestConfig.COMMON_PASSWORD,
new BaasioSignUpCallback() {
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
});
signal.await();
}
public void test004Init_User1SignIn() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser.signInInBackground(getInstrumentation().getContext(),
UnitTestConfig.USER1_USERNAME, UnitTestConfig.COMMON_PASSWORD,
new BaasioSignInCallback() {
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
});
signal.await();
}
public void test300FileUpload() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setProperty(UnitTestConfig.FILE_PROPERTY_NAME, UnitTestConfig.FILE_PROPERTY_VALUE);
file.fileUploadInBackground(UnitTestConfig.FILE_TEST_FILE_FULLPATH, null,
new BaasioUploadCallback() {
private long total;
private long written;
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_TEST_FILENAME.equals(response.getFilename())) {
fail("Filename miss match");
}
if (!UnitTestConfig.FILE_PROPERTY_VALUE.equals(test)) {
fail("Property miss match");
}
if (total != written) {
fail("Total size are different with witten size");
}
mFile = response;
signal.countDown();
}
@Override
public void onProgress(long total, long current) {
this.total = total;
this.written = current;
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test301FileGet() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.getInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
if (!UnitTestConfig.FILE_TEST_FILENAME.equals(response.getFilename())) {
fail("Filename miss match");
}
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_VALUE.equals(test)) {
fail("Property miss match");
}
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test302FileUpdate() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.setProperty(UnitTestConfig.FILE_PROPERTY_NAME,
UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE);
file.fileUpdateInBackground(UnitTestConfig.FILE_TEST_UPDATED_FILE_FULLPATH, null,
new BaasioUploadCallback() {
private long total;
private long written;
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
if (!UnitTestConfig.FILE_TEST_UPDATED_FILENAME.equals(response
.getFilename())) {
fail("Filename miss match");
}
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE.equals(test)) {
fail("Property miss match");
}
if (total != written) {
fail("Total size are different with witten size");
}
mFile = response;
signal.countDown();
}
@Override
public void onProgress(long total, long current) {
this.total = total;
this.written = current;
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test303CheckFileUpdated() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.getInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
if (!UnitTestConfig.FILE_TEST_UPDATED_FILENAME.equals(response.getFilename())) {
fail("Filename miss match");
}
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE.equals(test)) {
fail("Property miss match");
}
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test304FileDownload() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.setFilename(mFile.getFilename());
file.fileDownloadInBackground(UnitTestConfig.FILE_TEST_ROOT_PATH + File.separator,
new BaasioDownloadCallback() {
private long total;
private long written;
@Override
public void onResponse(String localFilePath) {
LogUtils.LOGV(TAG, "Downloaded Path: " + localFilePath);
if (!UnitTestConfig.FILE_TEST_UPDATED_FILE_FULLPATH.equals(localFilePath)) {
fail("Downloaded file path miss match");
}
File file = new File(localFilePath);
if (!file.exists()) {
fail("File not exist");
}
if (total != written) {
fail("Total size are different with witten size");
}
signal.countDown();
}
@Override
public void onProgress(long total, long current) {
this.total = total;
this.written = current;
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test305FileDelete() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.deleteInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
if (!UnitTestConfig.FILE_TEST_UPDATED_FILENAME.equals(response.getFilename())) {
fail("name miss match");
}
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE.equals(test)) {
fail("Property miss match");
}
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test306CheckFileDeleted() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.getInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGE(TAG, response.toString());
fail("File is not deleted");
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGV(TAG, e.toString());
signal.countDown();
}
});
signal.await();
}
public void test307FileSave() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setProperty(UnitTestConfig.FILE_PROPERTY_NAME, UnitTestConfig.FILE_PROPERTY_VALUE);
file.setFilename(UnitTestConfig.FILE_TEST_EMPTY_FILENAME);
file.saveInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_VALUE.equals(test)) {
fail("Property miss match");
}
if (!UnitTestConfig.FILE_TEST_EMPTY_FILENAME.equals(response.getFilename())) {
fail("Filename miss match");
}
mFile = response;
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test308FileGet() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.getInBackground(new BaasioCallback<BaasioFile>() {
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_VALUE.equals(test)) {
fail("Property miss match");
}
if (!UnitTestConfig.FILE_TEST_EMPTY_FILENAME.equals(response.getFilename())) {
fail("Filename miss match");
}
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test309FileUpdateToFileEntity() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioFile file = new BaasioFile();
file.setUuid(mFile.getUuid());
file.setProperty(UnitTestConfig.FILE_PROPERTY_NAME,
UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE);
file.fileUpdateInBackground(UnitTestConfig.FILE_TEST_UPDATED_FILE_FULLPATH, null,
new BaasioUploadCallback() {
private long total;
private long written;
@Override
public void onResponse(BaasioFile response) {
LogUtils.LOGV(TAG, response.toString());
if (!UnitTestConfig.FILE_TEST_UPDATED_FILENAME.equals(response
.getFilename())) {
fail("Filename miss match");
}
String test = response.getProperty(UnitTestConfig.FILE_PROPERTY_NAME)
.getTextValue();
if (!UnitTestConfig.FILE_PROPERTY_CHANGED_VALUE.equals(test)) {
fail("Property miss match");
}
if (total != written) {
fail("Total size are different with witten size");
}
mFile = response;
signal.countDown();
}
@Override
public void onProgress(long total, long current) {
this.total = total;
this.written = current;
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
});
signal.await();
}
public void test310CheckFileUpdated() throws InterruptedException {
test303CheckFileUpdated();
}
public void test311FileDownload() throws InterruptedException {
test304FileDownload();
}
public void test312FileDelete() throws InterruptedException {
test305FileDelete();
}
public void test313CheckFileDelete() throws InterruptedException {
test306CheckFileDeleted();
}
public void test996Uninit_UserSignOut() {
BaasioUser.signOut(getInstrumentation().getContext());
}
public void test997Uninit_User1SignIn() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser.signInInBackground(getInstrumentation().getContext(),
UnitTestConfig.USER1_USERNAME, UnitTestConfig.COMMON_PASSWORD,
new BaasioSignInCallback() {
@Override
public void onException(BaasioException e) {
LogUtils.LOGE(TAG, e.toString());
fail(e.toString());
signal.countDown();
}
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
});
signal.await();
}
public void test998Uninit_User1Unsubscribe() throws InterruptedException {
final CountDownLatch signal = new CountDownLatch(1);
BaasioUser user = Baas.io().getSignedInUser();
if (!ObjectUtils.isEmpty(user)) {
user.unsubscribeInBackground(getInstrumentation().getContext(),
new BaasioCallback<BaasioUser>() {
@Override
public void onResponse(BaasioUser response) {
LogUtils.LOGV(TAG, response.toString());
signal.countDown();
}
@Override
public void onException(BaasioException e) {
LogUtils.LOGV(TAG, e.toString());
signal.countDown();
}
});
signal.await();
}
}
public void test999Uninit() throws InterruptedException {
if (mGCMRegisterTask != null) {
mGCMRegisterTask.cancel(true);
}
Baas.io().uninit(getInstrumentation().getContext());
}
}