Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update transaction list format #11

Merged
merged 2 commits into from Feb 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion OmiseGO.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'OmiseGO'
s.version = '0.9.5'
s.version = '0.9.6'
s.license = 'Apache'
s.summary = 'The OmiseGO iOS SDK allows developers to easily interact with a node of the OmiseGO eWallet.'
s.homepage = 'https://omisego.network/'
Expand Down
8 changes: 8 additions & 0 deletions OmiseGO.xcodeproj/project.pbxproj
Expand Up @@ -41,6 +41,8 @@
0345BE271F96FDC400B4CA16 /* LiveTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0345BE261F96FDC400B4CA16 /* LiveTestCase.swift */; };
0345BE291F96FE8C00B4CA16 /* ResponseLiveTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0345BE281F96FE8C00B4CA16 /* ResponseLiveTest.swift */; };
034FA0441FA31C930033B8D1 /* LogoutFixtureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 034FA0431FA31C930033B8D1 /* LogoutFixtureTests.swift */; };
0355969920453069000E38DA /* TransactionSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0355969820453069000E38DA /* TransactionSource.swift */; };
0355969B2045315F000E38DA /* TransactionExchange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0355969A2045315F000E38DA /* TransactionExchange.swift */; };
0365DE832028508900F7B42E /* TransactionRequestParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0365DE822028508900F7B42E /* TransactionRequestParams.swift */; };
0365DE8520285FE700F7B42E /* TransactionRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0365DE8420285FE700F7B42E /* TransactionRequest.swift */; };
037032A51FBBE6B100DBCDDD /* OmiseGO.h in Headers */ = {isa = PBXBuildFile; fileRef = 0370328D1FBBE6B100DBCDDD /* OmiseGO.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -135,6 +137,8 @@
0345BE261F96FDC400B4CA16 /* LiveTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveTestCase.swift; path = ../LiveTestCase.swift; sourceTree = "<group>"; };
0345BE281F96FE8C00B4CA16 /* ResponseLiveTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponseLiveTest.swift; sourceTree = "<group>"; };
034FA0431FA31C930033B8D1 /* LogoutFixtureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogoutFixtureTests.swift; sourceTree = "<group>"; };
0355969820453069000E38DA /* TransactionSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionSource.swift; sourceTree = "<group>"; };
0355969A2045315F000E38DA /* TransactionExchange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionExchange.swift; sourceTree = "<group>"; };
0365DE822028508900F7B42E /* TransactionRequestParams.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionRequestParams.swift; sourceTree = "<group>"; };
0365DE8420285FE700F7B42E /* TransactionRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionRequest.swift; sourceTree = "<group>"; };
0370328D1FBBE6B100DBCDDD /* OmiseGO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OmiseGO.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -318,6 +322,8 @@
0365DE8420285FE700F7B42E /* TransactionRequest.swift */,
038CB3E6202AF81900E40715 /* TransactionConsumeParams.swift */,
03FE644A2032A39100345281 /* TransactionConsume.swift */,
0355969820453069000E38DA /* TransactionSource.swift */,
0355969A2045315F000E38DA /* TransactionExchange.swift */,
039DA974203FA94100CCC56A /* PaginationParams.swift */,
039DA976203FAB0600CCC56A /* TransactionListParams.swift */,
039DA972203FA72800CCC56A /* Transaction.swift */,
Expand Down Expand Up @@ -583,6 +589,7 @@
037032AF1FBBE6B100DBCDDD /* Retrievable.swift in Sources */,
0313D6DC20317696003E99BA /* QRScannerViewController.swift in Sources */,
037032B11FBBE6B100DBCDDD /* OMGConfiguration.swift in Sources */,
0355969B2045315F000E38DA /* TransactionExchange.swift in Sources */,
037032B01FBBE6B100DBCDDD /* Listable.swift in Sources */,
037032B51FBBE6B100DBCDDD /* APIEndpoint.swift in Sources */,
039DA973203FA72800CCC56A /* Transaction.swift in Sources */,
Expand All @@ -593,6 +600,7 @@
037032B81FBBE6B100DBCDDD /* OMGRequest.swift in Sources */,
037032A91FBBE6B100DBCDDD /* Address.swift in Sources */,
037032AA1FBBE6B100DBCDDD /* User.swift in Sources */,
0355969920453069000E38DA /* TransactionSource.swift in Sources */,
037032AB1FBBE6B100DBCDDD /* Balance.swift in Sources */,
037032AD1FBBE6B100DBCDDD /* Object.swift in Sources */,
0313D6D920317696003E99BA /* QRScannerViewModel.swift in Sources */,
Expand Down
52 changes: 43 additions & 9 deletions OmiseGOTests/DecodeTests.swift
Expand Up @@ -262,7 +262,7 @@ class DecodeTests: XCTestCase {
XCTAssertEqual(mintedToken.subUnitToUnit, 100000)
XCTAssertEqual(decodedData.correlationId, "31009545-db10-4287-82f4-afb46d9741d8")
XCTAssertEqual(decodedData.idempotencyToken, "31009545-db10-4287-82f4-afb46d9741d8")
XCTAssertEqual(decodedData.transferId, "6ca40f34-6eaa-43e1-b2e1-a94ff3660988")
XCTAssertEqual(decodedData.transactionId, "6ca40f34-6eaa-43e1-b2e1-a94ff3660988")
XCTAssertEqual(decodedData.userId, "6f56efa1-caf9-4348-8e0f-f5af283f17ee")
XCTAssertEqual(decodedData.transactionRequestId, "907056a4-fc2d-47cb-af19-5e73aade7ece")
XCTAssertEqual(decodedData.address, "3b7f1c68-e3bd-4f8f-9916-4af19be95d00")
Expand All @@ -276,14 +276,22 @@ class DecodeTests: XCTestCase {
let jsonData = try self.jsonData(withFileName: "transaction")
let decodedData = try self.jsonDecoder.decode(Transaction.self, from: jsonData)
XCTAssertEqual(decodedData.id, "ce3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(decodedData.amount, 1000)
XCTAssertEqual(decodedData.from, "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(decodedData.to, "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let mintedToken = decodedData.mintedToken
XCTAssertEqual(mintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(mintedToken.symbol, "BTC")
XCTAssertEqual(mintedToken.name, "Bitcoin")
XCTAssertEqual(mintedToken.subUnitToUnit, 100)
let from = decodedData.from
XCTAssertEqual(from.address, "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let fromMintedToken = from.mintedToken
XCTAssertEqual(fromMintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(fromMintedToken.symbol, "BTC")
XCTAssertEqual(fromMintedToken.name, "Bitcoin")
XCTAssertEqual(fromMintedToken.subUnitToUnit, 100)
let to = decodedData.to
XCTAssertEqual(to.address, "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let toMintedToken = to.mintedToken
XCTAssertEqual(toMintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(toMintedToken.symbol, "BTC")
XCTAssertEqual(toMintedToken.name, "Bitcoin")
XCTAssertEqual(toMintedToken.subUnitToUnit, 100)
let exchange = decodedData.exchange
XCTAssertEqual(exchange.rate, 1)
XCTAssertEqual(decodedData.status, .confirmed)
XCTAssertEqual(decodedData.createdAt, "2018-01-01T00:00:00Z".toDate())
XCTAssertEqual(decodedData.updatedAt, "2018-01-01T10:00:00Z".toDate())
Expand All @@ -305,4 +313,30 @@ class DecodeTests: XCTestCase {
}
}

func testTransactionSourceDecoding() {
do {
let jsonData = try self.jsonData(withFileName: "transaction_source")
let decodedData = try self.jsonDecoder.decode(TransactionSource.self, from: jsonData)
XCTAssertEqual(decodedData.address, "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(decodedData.amount, 1000)
let mintedToken: MintedToken = decodedData.mintedToken
XCTAssertEqual(mintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(mintedToken.symbol, "BTC")
XCTAssertEqual(mintedToken.name, "Bitcoin")
XCTAssertEqual(mintedToken.subUnitToUnit, 100)
} catch let thrownError {
XCTFail(thrownError.localizedDescription)
}
}

func testTransactionExchangeDecoding() {
do {
let jsonData = try self.jsonData(withFileName: "transaction_exchange")
let decodedData = try self.jsonDecoder.decode(TransactionExchange.self, from: jsonData)
XCTAssertEqual(decodedData.rate, 1)
} catch let thrownError {
XCTFail(thrownError.localizedDescription)
}
}

}
Expand Up @@ -15,7 +15,7 @@
},
"correlation_id": "31009545-db10-4287-82f4-afb46d9741d8",
"idempotency_token": "31009545-db10-4287-82f4-afb46d9741d8",
"transfer_id": "6ca40f34-6eaa-43e1-b2e1-a94ff3660988",
"transaction_id": "6ca40f34-6eaa-43e1-b2e1-a94ff3660988",
"user_id": "6f56efa1-caf9-4348-8e0f-f5af283f17ee",
"transaction_request_id": "907056a4-fc2d-47cb-af19-5e73aade7ece",
"address": "3b7f1c68-e3bd-4f8f-9916-4af19be95d00"
Expand Down
Expand Up @@ -7,22 +7,43 @@
{
"object": "transaction",
"id": "ce3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"from": "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"to": "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
"from": {
"object": "transaction_source",
"address": "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
},
"to": {
"object": "transaction_source",
"address": "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
},
"exchange": {
"object": "exchange",
"rate": 1
},
"status": "confirmed",
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
}

],
"pagination": {
"per_page": 10,
Expand Down
50 changes: 35 additions & 15 deletions OmiseGOTests/FixtureTests/Fixtures/objects/transaction.json
@@ -1,19 +1,39 @@
{
"object": "transaction",
"id": "ce3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"object": "transaction",
"id": "ce3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"from": {
"object": "transaction_source",
"address": "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"from": "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"to": "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
},
"status": "confirmed",
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
},
"to": {
"object": "transaction_source",
"address": "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
},
"exchange": {
"object": "exchange",
"rate": 1
},
"status": "confirmed",
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
34 changes: 17 additions & 17 deletions OmiseGOTests/FixtureTests/Fixtures/objects/transaction_consume.json
@@ -1,19 +1,19 @@
{
"object": "transaction_request_consumption",
"id": "8eb0160e-1c96-481a-88e1-899399cc84dc",
"status": "confirmed",
"amount": 1337,
"minted_token": {
"object": "minted_token",
"id": "BTC:123",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100000
},
"correlation_id": "31009545-db10-4287-82f4-afb46d9741d8",
"idempotency_token": "31009545-db10-4287-82f4-afb46d9741d8",
"transfer_id": "6ca40f34-6eaa-43e1-b2e1-a94ff3660988",
"user_id": "6f56efa1-caf9-4348-8e0f-f5af283f17ee",
"transaction_request_id": "907056a4-fc2d-47cb-af19-5e73aade7ece",
"address": "3b7f1c68-e3bd-4f8f-9916-4af19be95d00"
"object": "transaction_request_consumption",
"id": "8eb0160e-1c96-481a-88e1-899399cc84dc",
"status": "confirmed",
"amount": 1337,
"minted_token": {
"object": "minted_token",
"id": "BTC:123",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100000
},
"correlation_id": "31009545-db10-4287-82f4-afb46d9741d8",
"idempotency_token": "31009545-db10-4287-82f4-afb46d9741d8",
"transaction_id": "6ca40f34-6eaa-43e1-b2e1-a94ff3660988",
"user_id": "6f56efa1-caf9-4348-8e0f-f5af283f17ee",
"transaction_request_id": "907056a4-fc2d-47cb-af19-5e73aade7ece",
"address": "3b7f1c68-e3bd-4f8f-9916-4af19be95d00"
}
@@ -0,0 +1,4 @@
{
"object": "exchange",
"rate": 1
}
14 changes: 14 additions & 0 deletions OmiseGOTests/FixtureTests/Fixtures/objects/transaction_source.json
@@ -0,0 +1,14 @@
{
"object": "transaction_source",
"address": "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"amount": 1000,
"minted_token": {
"object": "minted_token",
"id": "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1",
"symbol": "BTC",
"name": "Bitcoin",
"subunit_to_unit": 100,
"created_at": "2018-01-01T00:00:00Z",
"updated_at": "2018-01-01T10:00:00Z"
}
}
Expand Up @@ -44,7 +44,7 @@ class TransactionConsumeFixtureTests: FixtureTestCase {
XCTAssertEqual(transactionConsume.address, "3b7f1c68-e3bd-4f8f-9916-4af19be95d00")
XCTAssertEqual(transactionConsume.correlationId, "31009545-db10-4287-82f4-afb46d9741d8")
XCTAssertEqual(transactionConsume.idempotencyToken, "31009545-db10-4287-82f4-afb46d9741d8")
XCTAssertEqual(transactionConsume.transferId, "6ca40f34-6eaa-43e1-b2e1-a94ff3660988")
XCTAssertEqual(transactionConsume.transactionId, "6ca40f34-6eaa-43e1-b2e1-a94ff3660988")
XCTAssertEqual(transactionConsume.userId, "6f56efa1-caf9-4348-8e0f-f5af283f17ee")
XCTAssertEqual(transactionConsume.transactionRequestId, "907056a4-fc2d-47cb-af19-5e73aade7ece")
XCTAssertEqual(transactionConsume.status, .confirmed)
Expand Down
30 changes: 16 additions & 14 deletions OmiseGOTests/FixtureTests/TransactionTests.swift
Expand Up @@ -28,25 +28,27 @@ class TransactionTests: FixtureTestCase {
switch result {
case .success(data: let paginatedList):
let transactions = paginatedList.data
XCTAssertEqual(transactions.count, 1)
let transaction = transactions.first!
XCTAssertEqual(transaction.id, "ce3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(transaction.amount, 1000)
XCTAssertEqual(transaction.from, "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(transaction.to, "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let mintedToken = transaction.mintedToken
XCTAssertEqual(mintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(mintedToken.symbol, "BTC")
XCTAssertEqual(mintedToken.name, "Bitcoin")
XCTAssertEqual(mintedToken.subUnitToUnit, 100)
let from = transaction.from
XCTAssertEqual(from.address, "1e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let fromMintedToken = from.mintedToken
XCTAssertEqual(fromMintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(fromMintedToken.symbol, "BTC")
XCTAssertEqual(fromMintedToken.name, "Bitcoin")
XCTAssertEqual(fromMintedToken.subUnitToUnit, 100)
let to = transaction.to
XCTAssertEqual(to.address, "2e3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
let toMintedToken = to.mintedToken
XCTAssertEqual(toMintedToken.id, "BTC:xe3982f5-4a27-498d-a91b-7bb2e2a8d3d1")
XCTAssertEqual(toMintedToken.symbol, "BTC")
XCTAssertEqual(toMintedToken.name, "Bitcoin")
XCTAssertEqual(toMintedToken.subUnitToUnit, 100)
let exchange = transaction.exchange
XCTAssertEqual(exchange.rate, 1)
XCTAssertEqual(transaction.status, .confirmed)
XCTAssertEqual(transaction.createdAt, "2018-01-01T00:00:00Z".toDate())
XCTAssertEqual(transaction.updatedAt, "2018-01-01T10:00:00Z".toDate())
let pagination = paginatedList.pagination
XCTAssertEqual(pagination.currentPage, 1)
XCTAssertEqual(pagination.perPage, 10)
XCTAssertEqual(pagination.isFirstPage, true)
XCTAssertEqual(pagination.isLastPage, true)
case .fail(error: let error):
XCTFail("\(error)")
}
Expand Down