Added 'isLifetime' property to UserAccount class
This commit is contained in:
parent
d04c8bb648
commit
7abf7343a1
3 changed files with 125 additions and 1 deletions
|
@ -47,6 +47,7 @@ public class UserAccount extends GrapheneObject implements ByteSerializable, Jso
|
||||||
public static final String KEY_OWNER_SPECIAL_AUTHORITY = "owner_special_authority";
|
public static final String KEY_OWNER_SPECIAL_AUTHORITY = "owner_special_authority";
|
||||||
public static final String KEY_ACTIVE_SPECIAL_AUTHORITY = "active_special_authority";
|
public static final String KEY_ACTIVE_SPECIAL_AUTHORITY = "active_special_authority";
|
||||||
public static final String KEY_N_CONTROL_FLAGS = "top_n_control_flags";
|
public static final String KEY_N_CONTROL_FLAGS = "top_n_control_flags";
|
||||||
|
public static final String LIFETIME_EXPIRATION_DATE = "1969-12-31T23:59:59";
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -84,6 +85,7 @@ public class UserAccount extends GrapheneObject implements ByteSerializable, Jso
|
||||||
@Expose
|
@Expose
|
||||||
private long referrerRewardsPercentage;
|
private long referrerRewardsPercentage;
|
||||||
|
|
||||||
|
private boolean isLifeTime;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -248,6 +250,14 @@ public class UserAccount extends GrapheneObject implements ByteSerializable, Jso
|
||||||
this.statistics = statistics;
|
this.statistics = statistics;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLifeTime() {
|
||||||
|
return isLifeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLifeTime(boolean lifeTime) {
|
||||||
|
isLifeTime = lifeTime;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deserializer used to build a UserAccount instance from the full JSON-formatted response obtained
|
* Deserializer used to build a UserAccount instance from the full JSON-formatted response obtained
|
||||||
* by the 'get_objects' API call.
|
* by the 'get_objects' API call.
|
||||||
|
@ -274,8 +284,10 @@ public class UserAccount extends GrapheneObject implements ByteSerializable, Jso
|
||||||
// Handling the deserialization and assignation of the membership date, which internally
|
// Handling the deserialization and assignation of the membership date, which internally
|
||||||
// is stored as a long POSIX time value
|
// is stored as a long POSIX time value
|
||||||
try{
|
try{
|
||||||
Date date = dateFormat.parse(jsonAccount.get(KEY_MEMBERSHIP_EXPIRATION_DATE).getAsString());
|
String expirationDate = jsonAccount.get(KEY_MEMBERSHIP_EXPIRATION_DATE).getAsString();
|
||||||
|
Date date = dateFormat.parse(expirationDate);
|
||||||
userAccount.setMembershipExpirationDate(date.getTime());
|
userAccount.setMembershipExpirationDate(date.getTime());
|
||||||
|
userAccount.setLifeTime(expirationDate.equals(LIFETIME_EXPIRATION_DATE));
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
System.out.println("ParseException. Msg: "+e.getMessage());
|
System.out.println("ParseException. Msg: "+e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
package cy.agorise.graphenej.api;
|
||||||
|
|
||||||
|
import com.neovisionaries.ws.client.WebSocketException;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cy.agorise.graphenej.UserAccount;
|
||||||
|
import cy.agorise.graphenej.interfaces.WitnessResponseListener;
|
||||||
|
import cy.agorise.graphenej.models.AccountProperties;
|
||||||
|
import cy.agorise.graphenej.models.BaseResponse;
|
||||||
|
import cy.agorise.graphenej.models.WitnessResponse;
|
||||||
|
|
||||||
|
public class GetAccountsTest extends BaseApiTest {
|
||||||
|
private UserAccount ltmAccount = new UserAccount("1.2.99700");
|
||||||
|
private UserAccount nonLtmAccount = new UserAccount("1.2.140994");
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetAccount(){
|
||||||
|
ArrayList<UserAccount> userAccounts = new ArrayList<>();
|
||||||
|
userAccounts.add(ltmAccount);
|
||||||
|
userAccounts.add(nonLtmAccount);
|
||||||
|
mWebSocket.addListener(new GetAccounts(userAccounts, true, new WitnessResponseListener(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
System.out.println("onSuccess.");
|
||||||
|
List<AccountProperties> accounts = (List<AccountProperties>) response.result;
|
||||||
|
System.out.println(String.format("Got %d accounts", accounts.size()));
|
||||||
|
for(AccountProperties accountProperties : accounts){
|
||||||
|
System.out.println("account name....: "+accountProperties.name);
|
||||||
|
System.out.println("expiration date.: "+accountProperties.membership_expiration_date);
|
||||||
|
}
|
||||||
|
AccountProperties ltmAccountProperties = accounts.get(0);
|
||||||
|
AccountProperties nonLtmAccountProperties = accounts.get(1);
|
||||||
|
Assert.assertEquals(ltmAccountProperties.membership_expiration_date, UserAccount.LIFETIME_EXPIRATION_DATE);
|
||||||
|
Assert.assertFalse(nonLtmAccountProperties.membership_expiration_date.equals(UserAccount.LIFETIME_EXPIRATION_DATE));
|
||||||
|
synchronized (GetAccountsTest.this){
|
||||||
|
GetAccountsTest.this.notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
System.out.println("onError. Msg: "+error.message);
|
||||||
|
synchronized (GetAccountsTest.this){
|
||||||
|
GetAccountsTest.this.notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
try{
|
||||||
|
mWebSocket.connect();
|
||||||
|
synchronized (this){
|
||||||
|
wait();
|
||||||
|
}
|
||||||
|
}catch (WebSocketException e) {
|
||||||
|
System.out.println("WebSocketException. Msg: " + e.getMessage());
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println("InterruptedException. Msg: "+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,6 +27,7 @@ public class GetObjectsTest extends BaseApiTest{
|
||||||
private final Asset asset = new Asset("1.3.0", "BTS", 5);
|
private final Asset asset = new Asset("1.3.0", "BTS", 5);
|
||||||
private final UserAccount account = new UserAccount("1.2.116354");
|
private final UserAccount account = new UserAccount("1.2.116354");
|
||||||
private final UserAccount bilthon_25 = new UserAccount("1.2.151069");
|
private final UserAccount bilthon_25 = new UserAccount("1.2.151069");
|
||||||
|
private UserAccount ltmAccount = new UserAccount("1.2.99700");
|
||||||
private final String[] bitAssetIds = new String[]{"2.4.21", "2.4.83"};
|
private final String[] bitAssetIds = new String[]{"2.4.21", "2.4.83"};
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -109,6 +110,50 @@ public class GetObjectsTest extends BaseApiTest{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetLtmAccount(){
|
||||||
|
ArrayList<String> ids = new ArrayList<>();
|
||||||
|
ids.add(ltmAccount.getObjectId());
|
||||||
|
mWebSocket.addListener(new GetObjects(ids, new WitnessResponseListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
System.out.println("onSuccess");
|
||||||
|
List<GrapheneObject> result = (List<GrapheneObject>) response.result;
|
||||||
|
UserAccount userAccount = (UserAccount) result.get(0);
|
||||||
|
System.out.println("Account name.....: "+userAccount.getName());
|
||||||
|
System.out.println("Is LTM...........: "+userAccount.isLifeTime());
|
||||||
|
System.out.println("json string......: "+userAccount.toJsonString());
|
||||||
|
System.out.println("owner............: "+userAccount.getOwner().getKeyAuthList().get(0).getAddress());
|
||||||
|
System.out.println("active key.......: "+userAccount.getActive().getKeyAuthList().get(0).getAddress());
|
||||||
|
System.out.println("memo: "+userAccount.getOptions().getMemoKey().getAddress());
|
||||||
|
Assert.assertEquals("We expect this account to be LTM",true, userAccount.isLifeTime());
|
||||||
|
synchronized (GetObjectsTest.this){
|
||||||
|
GetObjectsTest.this.notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
System.out.println("onError");
|
||||||
|
synchronized (GetObjectsTest.this){
|
||||||
|
GetObjectsTest.this.notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
try {
|
||||||
|
mWebSocket.connect();
|
||||||
|
synchronized (this){
|
||||||
|
wait();
|
||||||
|
}
|
||||||
|
}catch (WebSocketException e) {
|
||||||
|
System.out.println("WebSocketException. Msg: " + e.getMessage());
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println("InterruptedException. Msg: "+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBitAssetData(){
|
public void testBitAssetData(){
|
||||||
try{
|
try{
|
||||||
|
|
Loading…
Reference in a new issue