Skip to content

Commit

Permalink
Add warnings and deprecate ackWarningsList and warningsList
Browse files Browse the repository at this point in the history
  • Loading branch information
James Robert Somers committed Mar 14, 2018
1 parent 2e0a3ed commit 5a7309b
Show file tree
Hide file tree
Showing 6 changed files with 299 additions and 9 deletions.
2 changes: 1 addition & 1 deletion tradeit-android-sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'it.trade:tradeit-java-api:1.1.10'
compile 'it.trade:tradeit-java-api:1.1.11'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import java.util.Arrays;
import java.util.List;

import it.trade.model.reponse.Warning;
import it.trade.model.reponse.WarningLink;

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

Expand All @@ -26,13 +29,25 @@ public void createTradeItPreviewStockOrEtfOrder() {

@Test
public void tradeItPreviewStockOrEtfOrder_ParcelableWriteRead() {
WarningLink link = new WarningLink();
link.label = "Label";
link.url = "URL";

Warning warning = new Warning();
warning.message = "Warning";
warning.requiresAcknowledgement = true;
warning.links = Arrays.asList(link);

TradeItWarningParcelable warningParcelable = new TradeItWarningParcelable(warning);

// Set up the Parcelable object to send and receive.
previewOrderResponse.orderId = "MyOrderId";
previewOrderResponse.ackWarningsList = Arrays.asList("MyAckWarning");
previewOrderResponse.warningsList = Arrays.asList("MyWarningList");
previewOrderResponse.orderDetails = new TradeItOrderDetailsParcelable();
previewOrderResponse.orderDetails.orderSymbol = "GE";
previewOrderResponse.orderDetails.orderCommissionLabel = "MyOrderCommissionLabel";
previewOrderResponse.orderDetails.warnings = Arrays.asList(warningParcelable);
// Write the data.
Parcel parcel = Parcel.obtain();
previewOrderResponse.writeToParcel(parcel, previewOrderResponse.describeContents());
Expand All @@ -45,13 +60,16 @@ public void tradeItPreviewStockOrEtfOrder_ParcelableWriteRead() {
TradeItOrderDetailsParcelable orderDetailsParcelable = createdFromParcel.getOrderDetails();
List<String> ackWarningsList = createdFromParcel.ackWarningsList;
List<String> warningsList = createdFromParcel.warningsList;
List<TradeItWarningParcelable> warnings = createdFromParcel.orderDetails.warnings;

String orderId = createdFromParcel.orderId;

// Verify that the received data is correct.
assertThat(orderId, is(previewOrderResponse.orderId));
assertThat(ackWarningsList, is(previewOrderResponse.ackWarningsList));
assertThat(warningsList, is(previewOrderResponse.warningsList));
assertThat(orderDetailsParcelable.orderSymbol, is(previewOrderResponse.orderDetails.orderSymbol));
assertThat(orderDetailsParcelable.orderCommissionLabel, is(previewOrderResponse.orderDetails.orderCommissionLabel));
assertThat(orderDetailsParcelable.orderSymbol, is(previewOrderResponse.orderDetails.getOrderSymbol()));
assertThat(orderDetailsParcelable.orderCommissionLabel, is(previewOrderResponse.orderDetails.getOrderCommissionLabel()));
assertThat(warnings, is(previewOrderResponse.orderDetails.getWarnings()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,36 @@
import android.os.Parcel;
import android.os.Parcelable;

import java.util.ArrayList;
import java.util.List;

import it.trade.model.reponse.OrderDetails;
import it.trade.model.reponse.Warning;

public class TradeItOrderDetailsParcelable implements Parcelable {
protected String orderSymbol;
protected String orderAction;
protected Double orderQuantity;
protected String orderExpiration;
protected String orderPrice;
protected String orderValueLabel;
protected String orderCommissionLabel;
protected String orderMessage;
protected String lastPrice;
protected String bidPrice;
protected String askPrice;
protected String timestamp;
protected Double buyingPower;
protected Double availableCash;
protected Double estimatedOrderCommission;
protected Double longHoldings;
protected Double shortHoldings;
protected Double estimatedOrderValue;
protected Double estimatedTotalValue;
protected List<TradeItWarningParcelable> warnings = new ArrayList<>();

public class TradeItOrderDetailsParcelable extends OrderDetails implements Parcelable {
TradeItOrderDetailsParcelable() {
}

TradeItOrderDetailsParcelable(OrderDetails orderDetails) {
this.askPrice = orderDetails.askPrice;
Expand All @@ -27,6 +54,17 @@ public class TradeItOrderDetailsParcelable extends OrderDetails implements Parce
this.timestamp = orderDetails.timestamp;
this.longHoldings = orderDetails.longHoldings;
this.shortHoldings = orderDetails.shortHoldings;
this.warnings = mapWarnings(orderDetails.warnings);
}

private static List<TradeItWarningParcelable> mapWarnings(List<Warning> warnings) {
List<TradeItWarningParcelable> mappedValues = new ArrayList<>();
if (warnings != null) {
for (Warning warning: warnings) {
mappedValues.add(new TradeItWarningParcelable(warning));
}
}
return mappedValues;
}

@Override
Expand Down Expand Up @@ -55,9 +93,7 @@ public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(this.shortHoldings);
dest.writeValue(this.estimatedOrderValue);
dest.writeValue(this.estimatedTotalValue);
}

public TradeItOrderDetailsParcelable() {
dest.writeTypedList(this.warnings);
}

protected TradeItOrderDetailsParcelable(Parcel in) {
Expand All @@ -80,6 +116,7 @@ protected TradeItOrderDetailsParcelable(Parcel in) {
this.shortHoldings = (Double) in.readValue(Double.class.getClassLoader());
this.estimatedOrderValue = (Double) in.readValue(Double.class.getClassLoader());
this.estimatedTotalValue = (Double) in.readValue(Double.class.getClassLoader());
this.warnings = in.createTypedArrayList(TradeItWarningParcelable.CREATOR);
}

public static final Parcelable.Creator<TradeItOrderDetailsParcelable> CREATOR = new Parcelable.Creator<TradeItOrderDetailsParcelable>() {
Expand All @@ -93,4 +130,84 @@ public TradeItOrderDetailsParcelable[] newArray(int size) {
return new TradeItOrderDetailsParcelable[size];
}
};

public String getOrderSymbol() {
return orderSymbol;
}

public String getOrderAction() {
return orderAction;
}

public Double getOrderQuantity() {
return orderQuantity;
}

public String getOrderExpiration() {
return orderExpiration;
}

public String getOrderPrice() {
return orderPrice;
}

public String getOrderValueLabel() {
return orderValueLabel;
}

public String getOrderCommissionLabel() {
return orderCommissionLabel;
}

public String getOrderMessage() {
return orderMessage;
}

public String getLastPrice() {
return lastPrice;
}

public String getBidPrice() {
return bidPrice;
}

public String getAskPrice() {
return askPrice;
}

public String getTimestamp() {
return timestamp;
}

public Double getBuyingPower() {
return buyingPower;
}

public Double getAvailableCash() {
return availableCash;
}

public Double getEstimatedOrderCommission() {
return estimatedOrderCommission;
}

public Double getLongHoldings() {
return longHoldings;
}

public Double getShortHoldings() {
return shortHoldings;
}

public Double getEstimatedOrderValue() {
return estimatedOrderValue;
}

public Double getEstimatedTotalValue() {
return estimatedTotalValue;
}

public List<TradeItWarningParcelable> getWarnings() {
return warnings;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import android.os.Parcel;
import android.os.Parcelable;

import java.util.ArrayList;
import java.util.List;

import it.trade.model.reponse.OrderDetails;
import it.trade.model.reponse.TradeItPreviewStockOrEtfOrderResponse;
import it.trade.model.reponse.Warning;

public class TradeItPreviewStockOrEtfOrderResponseParcelable implements Parcelable {

Expand All @@ -26,8 +28,6 @@ public class TradeItPreviewStockOrEtfOrderResponseParcelable implements Parcelab
public String toString() {
return "TradeItPreviewStockOrEtfOrderResponseParcelable{" +
"orderId='" + orderId + '\'' +
", ackWarningsList=" + ackWarningsList +
", warningsList=" + warningsList +
", orderDetails=" + orderDetails +
'}';
}
Expand All @@ -36,10 +36,20 @@ public String getOrderId() {
return orderId;
}

/**
*
* @deprecated Use orderDetails.warnings
*/
@Deprecated
public List<String> getAckWarningsList() {
return ackWarningsList;
}

/**
*
* @deprecated Use orderDetails.warnings
*/
@Deprecated
public List<String> getWarningsList() {
return warningsList;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package it.trade.android.sdk.model;

import android.os.Parcel;
import android.os.Parcelable;

import it.trade.model.reponse.WarningLink;

public class TradeItWarningLinkParcelable implements Parcelable {
protected String label;
protected String url;

TradeItWarningLinkParcelable(WarningLink link) {
this.label = link.label;
this.url = link.url;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

TradeItWarningLinkParcelable that = (TradeItWarningLinkParcelable) o;

if (label != null ? !label.equals(that.label) : that.label != null) return false;
return url != null ? url.equals(that.url) : that.url == null;
}

@Override
public int hashCode() {
int result = label != null ? label.hashCode() : 0;
result = 31 * result + (url != null ? url.hashCode() : 0);
return result;
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.label);
dest.writeString(this.url);
}

protected TradeItWarningLinkParcelable(Parcel in) {
this.label = in.readString();
this.url = in.readString();
}

public static final Parcelable.Creator<TradeItWarningLinkParcelable> CREATOR = new Parcelable.Creator<TradeItWarningLinkParcelable>() {
@Override
public TradeItWarningLinkParcelable createFromParcel(Parcel source) {
return new TradeItWarningLinkParcelable(source);
}

@Override
public TradeItWarningLinkParcelable[] newArray(int size) {
return new TradeItWarningLinkParcelable[size];
}
};
}
Loading

0 comments on commit 5a7309b

Please sign in to comment.