package com.example.avoscloud_demo;
import android.os.Bundle;
import android.view.Window;
import android.widget.ArrayAdapter;
import com.avos.avoscloud.*;
import junit.framework.Assert;
import java.lang.reflect.Method;
import java.util.*;
public class ObjectDemoActivity extends DemoBaseActivity {
// create an object and query it.
public void testObjectRead(final String string) throws AVException {
final String key = "array";
final String objectTable = "ObjectDemoTableRead";
final AVObject myObject = new AVObject(objectTable);
for(int i = 0; i < 5; ++i) {
myObject.add(key, i);
}
myObject.saveInBackground(new SaveCallback() {
@Override
public void done(AVException avException) {
AVQuery<AVObject> query = AVQuery.getQuery(objectTable);
query.getInBackground(myObject.getObjectId(), new GetCallback<AVObject>() {
@Override
public void done(AVObject result, AVException e) {
List < Number > array = result.getList(key);
Assert.assertTrue(array.size() == 5);
if (array.size() != 5) {
showMessage(string, new AVException(AVException.OTHER_CAUSE, "incorrect result"), false);
} else {
showMessage(string, null, false);
}
setProgressBarIndeterminateVisibility(false);
}
});
}});
}
public void testObjectCreate(final String string) throws AVException {
final String objectTable = "ObjectDemoTableCreate";
final String key = "score";
AVObject gameScore = new AVObject(objectTable);
final int targetValue = new Random().nextInt();
gameScore.put(key, targetValue);
int value = gameScore.getInt(key);
Assert.assertTrue(value == targetValue);
final String targetString = "Sean Plott";
gameScore.put("playerName", targetString);
String stringValue = gameScore.getString("playerName");
Assert.assertTrue(stringValue == targetString);
gameScore.saveInBackground(new SaveCallback() {
@Override
public void done(AVException e) {
showMessage(string, e, false);
}
});
}
// update an object
public void testObjectUpdate(final String string) {
final String key = "update";
final String objectTable = "ObjectDemoTableUpdate";
final AVObject myObject = new AVObject(objectTable);
final String value = "anotherValue";
myObject.put(key, "myValue");
myObject.saveInBackground(new SaveCallback() {
@Override
public void done(AVException avException) {
myObject.put(key, value);
myObject.saveInBackground(new SaveCallback() {
@Override
public void done(AVException e) {
AVQuery<AVObject> query = AVQuery.getQuery(objectTable);
query.getInBackground(myObject.getObjectId(), new GetCallback<AVObject>() {
@Override
public void done(AVObject result, AVException e) {
String stringValue = (String)result.get(key);
Assert.assertEquals(stringValue, value);
if (!value.equals(stringValue)) {
showMessage(string, new AVException(AVException.OTHER_CAUSE, "incorrect result"), false);
} else {
showMessage(string, null, false);
}
}
});
}
});
}
});
}
public void testObjectDelete(final String string) {
final String objectTable = "ObjectDemoTableDelete";
final AVObject myObject = new AVObject(objectTable);
myObject.saveInBackground(new SaveCallback() {
@Override
public void done(AVException avException) {
myObject.deleteInBackground(new DeleteCallback() {
@Override
public void done(AVException e) {
AVQuery<AVObject> query = AVQuery.getQuery(objectTable);
query.getInBackground(myObject.getObjectId(), new GetCallback<AVObject>() {
@Override
public void done(AVObject result, AVException e) {
Assert.assertTrue(result == null);
if (result != null) {
showMessage(string, new AVException(AVException.OTHER_CAUSE, "delete failed"), false);
} else {
showMessage(string, null, false);
}
}
});
}
});
};
});
}
}