mirror of
https://github.com/aclindsa/ofxgo.git
synced 2024-11-21 19:20:05 -05:00
Rename ofxgo_test package to ofxgo and remove self-imports/references
* Fix package in generate_constants.py * Update generate_constants.py to use the new imports
This commit is contained in:
parent
f19189de45
commit
8ad638c7e2
79
bank_test.go
79
bank_test.go
@ -1,7 +1,6 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -42,24 +41,24 @@ func TestMarshalBankStatementRequest(t *testing.T) {
|
|||||||
</BANKMSGSRQV1>
|
</BANKMSGSRQV1>
|
||||||
</OFX>`
|
</OFX>`
|
||||||
|
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion203,
|
SpecVersion: OfxVersion203,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "myusername"
|
request.Signon.UserID = "myusername"
|
||||||
request.Signon.UserPass = "Pa$$word"
|
request.Signon.UserPass = "Pa$$word"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
request.Signon.Fid = "1987"
|
request.Signon.Fid = "1987"
|
||||||
|
|
||||||
statementRequest := ofxgo.StatementRequest{
|
statementRequest := StatementRequest{
|
||||||
TrnUID: "123",
|
TrnUID: "123",
|
||||||
BankAcctFrom: ofxgo.BankAcct{
|
BankAcctFrom: BankAcct{
|
||||||
BankID: "318398732",
|
BankID: "318398732",
|
||||||
AcctID: "78346129",
|
AcctID: "78346129",
|
||||||
AcctType: ofxgo.AcctTypeChecking,
|
AcctType: AcctTypeChecking,
|
||||||
},
|
},
|
||||||
Include: true,
|
Include: true,
|
||||||
}
|
}
|
||||||
@ -68,7 +67,7 @@ func TestMarshalBankStatementRequest(t *testing.T) {
|
|||||||
request.SetClientFields(&client)
|
request.SetClientFields(&client)
|
||||||
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
request.Signon.DtClient = *ofxgo.NewDate(2006, 1, 15, 11, 23, 0, 0, EST)
|
request.Signon.DtClient = *NewDate(2006, 1, 15, 11, 23, 0, 0, EST)
|
||||||
|
|
||||||
marshalCheckRequest(t, &request, expectedString)
|
marshalCheckRequest(t, &request, expectedString)
|
||||||
}
|
}
|
||||||
@ -116,24 +115,24 @@ NEWFILEUID:NONE
|
|||||||
</BANKMSGSRQV1>
|
</BANKMSGSRQV1>
|
||||||
</OFX>`
|
</OFX>`
|
||||||
|
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion103,
|
SpecVersion: OfxVersion103,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "myusername"
|
request.Signon.UserID = "myusername"
|
||||||
request.Signon.UserPass = "Pa$$word"
|
request.Signon.UserPass = "Pa$$word"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
request.Signon.Fid = "1987"
|
request.Signon.Fid = "1987"
|
||||||
|
|
||||||
statementRequest := ofxgo.StatementRequest{
|
statementRequest := StatementRequest{
|
||||||
TrnUID: "123",
|
TrnUID: "123",
|
||||||
BankAcctFrom: ofxgo.BankAcct{
|
BankAcctFrom: BankAcct{
|
||||||
BankID: "318398732",
|
BankID: "318398732",
|
||||||
AcctID: "78346129",
|
AcctID: "78346129",
|
||||||
AcctType: ofxgo.AcctTypeChecking,
|
AcctType: AcctTypeChecking,
|
||||||
},
|
},
|
||||||
Include: true,
|
Include: true,
|
||||||
}
|
}
|
||||||
@ -142,7 +141,7 @@ NEWFILEUID:NONE
|
|||||||
request.SetClientFields(&client)
|
request.SetClientFields(&client)
|
||||||
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
request.Signon.DtClient = *ofxgo.NewDate(2006, 1, 15, 11, 23, 0, 0, EST)
|
request.Signon.DtClient = *NewDate(2006, 1, 15, 11, 23, 0, 0, EST)
|
||||||
|
|
||||||
marshalCheckRequest(t, &request, expectedString)
|
marshalCheckRequest(t, &request, expectedString)
|
||||||
}
|
}
|
||||||
@ -211,73 +210,73 @@ func TestUnmarshalBankStatementResponse(t *testing.T) {
|
|||||||
</STMTTRNRS>
|
</STMTTRNRS>
|
||||||
</BANKMSGSRSV1>
|
</BANKMSGSRSV1>
|
||||||
</OFX>`)
|
</OFX>`)
|
||||||
var expected ofxgo.Response
|
var expected Response
|
||||||
|
|
||||||
expected.Version = ofxgo.OfxVersion203
|
expected.Version = OfxVersion203
|
||||||
expected.Signon.Status.Code = 0
|
expected.Signon.Status.Code = 0
|
||||||
expected.Signon.Status.Severity = "INFO"
|
expected.Signon.Status.Severity = "INFO"
|
||||||
expected.Signon.DtServer = *ofxgo.NewDateGMT(2006, 1, 15, 11, 23, 03, 0)
|
expected.Signon.DtServer = *NewDateGMT(2006, 1, 15, 11, 23, 03, 0)
|
||||||
expected.Signon.Language = "ENG"
|
expected.Signon.Language = "ENG"
|
||||||
expected.Signon.DtProfUp = ofxgo.NewDateGMT(2005, 2, 21, 9, 13, 0, 0)
|
expected.Signon.DtProfUp = NewDateGMT(2005, 2, 21, 9, 13, 0, 0)
|
||||||
expected.Signon.DtAcctUp = ofxgo.NewDateGMT(2006, 1, 2, 16, 0, 0, 0)
|
expected.Signon.DtAcctUp = NewDateGMT(2006, 1, 2, 16, 0, 0, 0)
|
||||||
expected.Signon.Org = "BNK"
|
expected.Signon.Org = "BNK"
|
||||||
expected.Signon.Fid = "1987"
|
expected.Signon.Fid = "1987"
|
||||||
|
|
||||||
var trnamt1, trnamt2 ofxgo.Amount
|
var trnamt1, trnamt2 Amount
|
||||||
trnamt1.SetFrac64(-20000, 100)
|
trnamt1.SetFrac64(-20000, 100)
|
||||||
trnamt2.SetFrac64(-30000, 100)
|
trnamt2.SetFrac64(-30000, 100)
|
||||||
|
|
||||||
banktranlist := ofxgo.TransactionList{
|
banktranlist := TransactionList{
|
||||||
DtStart: *ofxgo.NewDateGMT(2006, 1, 1, 0, 0, 0, 0),
|
DtStart: *NewDateGMT(2006, 1, 1, 0, 0, 0, 0),
|
||||||
DtEnd: *ofxgo.NewDateGMT(2006, 1, 15, 0, 0, 0, 0),
|
DtEnd: *NewDateGMT(2006, 1, 15, 0, 0, 0, 0),
|
||||||
Transactions: []ofxgo.Transaction{
|
Transactions: []Transaction{
|
||||||
{
|
{
|
||||||
TrnType: ofxgo.TrnTypeCheck,
|
TrnType: TrnTypeCheck,
|
||||||
DtPosted: *ofxgo.NewDateGMT(2006, 1, 4, 0, 0, 0, 0),
|
DtPosted: *NewDateGMT(2006, 1, 4, 0, 0, 0, 0),
|
||||||
TrnAmt: trnamt1,
|
TrnAmt: trnamt1,
|
||||||
FiTID: "00592",
|
FiTID: "00592",
|
||||||
CheckNum: "2002",
|
CheckNum: "2002",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
TrnType: ofxgo.TrnTypeATM,
|
TrnType: TrnTypeATM,
|
||||||
DtPosted: *ofxgo.NewDateGMT(2006, 1, 12, 0, 0, 0, 0),
|
DtPosted: *NewDateGMT(2006, 1, 12, 0, 0, 0, 0),
|
||||||
DtUser: ofxgo.NewDateGMT(2006, 1, 12, 0, 0, 0, 0),
|
DtUser: NewDateGMT(2006, 1, 12, 0, 0, 0, 0),
|
||||||
TrnAmt: trnamt2,
|
TrnAmt: trnamt2,
|
||||||
FiTID: "00679",
|
FiTID: "00679",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var balamt, availbalamt ofxgo.Amount
|
var balamt, availbalamt Amount
|
||||||
balamt.SetFrac64(20029, 100)
|
balamt.SetFrac64(20029, 100)
|
||||||
availbalamt.SetFrac64(20029, 100)
|
availbalamt.SetFrac64(20029, 100)
|
||||||
|
|
||||||
usd, err := ofxgo.NewCurrSymbol("USD")
|
usd, err := NewCurrSymbol("USD")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating CurrSymbol for USD\n")
|
t.Fatalf("Unexpected error creating CurrSymbol for USD\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
statementResponse := ofxgo.StatementResponse{
|
statementResponse := StatementResponse{
|
||||||
TrnUID: "1001",
|
TrnUID: "1001",
|
||||||
Status: ofxgo.Status{
|
Status: Status{
|
||||||
Code: 0,
|
Code: 0,
|
||||||
Severity: "INFO",
|
Severity: "INFO",
|
||||||
},
|
},
|
||||||
CurDef: *usd,
|
CurDef: *usd,
|
||||||
BankAcctFrom: ofxgo.BankAcct{
|
BankAcctFrom: BankAcct{
|
||||||
BankID: "318398732",
|
BankID: "318398732",
|
||||||
AcctID: "78346129",
|
AcctID: "78346129",
|
||||||
AcctType: ofxgo.AcctTypeChecking,
|
AcctType: AcctTypeChecking,
|
||||||
},
|
},
|
||||||
BankTranList: &banktranlist,
|
BankTranList: &banktranlist,
|
||||||
BalAmt: balamt,
|
BalAmt: balamt,
|
||||||
DtAsOf: *ofxgo.NewDateGMT(2006, 1, 14, 16, 0, 0, 0),
|
DtAsOf: *NewDateGMT(2006, 1, 14, 16, 0, 0, 0),
|
||||||
AvailBalAmt: &availbalamt,
|
AvailBalAmt: &availbalamt,
|
||||||
AvailDtAsOf: ofxgo.NewDateGMT(2006, 1, 14, 16, 0, 0, 0),
|
AvailDtAsOf: NewDateGMT(2006, 1, 14, 16, 0, 0, 0),
|
||||||
}
|
}
|
||||||
expected.Bank = append(expected.Bank, &statementResponse)
|
expected.Bank = append(expected.Bank, &statementResponse)
|
||||||
|
|
||||||
response, err := ofxgo.ParseResponse(responseReader)
|
response, err := ParseResponse(responseReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestStatusValid(t *testing.T) {
|
func TestStatusValid(t *testing.T) {
|
||||||
s := ofxgo.Status{
|
s := Status{
|
||||||
Code: 0,
|
Code: 0,
|
||||||
Severity: "INFO",
|
Severity: "INFO",
|
||||||
Message: "Success",
|
Message: "Success",
|
||||||
@ -32,7 +31,7 @@ func TestStatusValid(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStatusCodeMeaning(t *testing.T) {
|
func TestStatusCodeMeaning(t *testing.T) {
|
||||||
s := ofxgo.Status{
|
s := Status{
|
||||||
Code: 15500,
|
Code: 15500,
|
||||||
Severity: "ERROR",
|
Severity: "ERROR",
|
||||||
}
|
}
|
||||||
@ -51,7 +50,7 @@ func TestStatusCodeMeaning(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStatusCodeConditions(t *testing.T) {
|
func TestStatusCodeConditions(t *testing.T) {
|
||||||
s := ofxgo.Status{
|
s := Status{
|
||||||
Code: 2006,
|
Code: 2006,
|
||||||
Severity: "ERROR",
|
Severity: "ERROR",
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,9 @@ package ofxgo
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/aclindsa/xml"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/aclindsa/xml"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ofxVersion uint
|
type ofxVersion uint
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do not edit this file by hand. It is auto-generated by calling `go generate`.
|
* Do not edit this file by hand. It is auto-generated by calling `go generate`.
|
||||||
@ -7,14 +7,14 @@ package ofxgo_test
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"github.com/aclindsa/xml"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/aclindsa/xml"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOfxVersion(t *testing.T) {
|
func TestOfxVersion(t *testing.T) {
|
||||||
e, err := ofxgo.NewOfxVersion("102")
|
e, err := NewOfxVersion("102")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OfxVersion from string \"102\"\n")
|
t.Fatalf("Unexpected error creating new OfxVersion from string \"102\"\n")
|
||||||
}
|
}
|
||||||
@ -31,7 +31,7 @@ func TestOfxVersion(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "220", &e)
|
marshalHelper(t, "220", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOfxVersion("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOfxVersion("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OfxVersion from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OfxVersion from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ func TestOfxVersion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAcctType(t *testing.T) {
|
func TestAcctType(t *testing.T) {
|
||||||
e, err := ofxgo.NewAcctType("CHECKING")
|
e, err := NewAcctType("CHECKING")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new AcctType from string \"CHECKING\"\n")
|
t.Fatalf("Unexpected error creating new AcctType from string \"CHECKING\"\n")
|
||||||
}
|
}
|
||||||
@ -76,7 +76,7 @@ func TestAcctType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "CD", &e)
|
marshalHelper(t, "CD", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewAcctType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewAcctType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new AcctType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new AcctType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -104,7 +104,7 @@ func TestAcctType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTrnType(t *testing.T) {
|
func TestTrnType(t *testing.T) {
|
||||||
e, err := ofxgo.NewTrnType("CREDIT")
|
e, err := NewTrnType("CREDIT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new TrnType from string \"CREDIT\"\n")
|
t.Fatalf("Unexpected error creating new TrnType from string \"CREDIT\"\n")
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ func TestTrnType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewTrnType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewTrnType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new TrnType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new TrnType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ func TestTrnType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestImageType(t *testing.T) {
|
func TestImageType(t *testing.T) {
|
||||||
e, err := ofxgo.NewImageType("STATEMENT")
|
e, err := NewImageType("STATEMENT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new ImageType from string \"STATEMENT\"\n")
|
t.Fatalf("Unexpected error creating new ImageType from string \"STATEMENT\"\n")
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ func TestImageType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "TAX", &e)
|
marshalHelper(t, "TAX", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewImageType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewImageType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new ImageType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new ImageType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -194,7 +194,7 @@ func TestImageType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestImageRefType(t *testing.T) {
|
func TestImageRefType(t *testing.T) {
|
||||||
e, err := ofxgo.NewImageRefType("OPAQUE")
|
e, err := NewImageRefType("OPAQUE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new ImageRefType from string \"OPAQUE\"\n")
|
t.Fatalf("Unexpected error creating new ImageRefType from string \"OPAQUE\"\n")
|
||||||
}
|
}
|
||||||
@ -211,7 +211,7 @@ func TestImageRefType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "FORMURL", &e)
|
marshalHelper(t, "FORMURL", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewImageRefType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewImageRefType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new ImageRefType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new ImageRefType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -239,7 +239,7 @@ func TestImageRefType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCheckSup(t *testing.T) {
|
func TestCheckSup(t *testing.T) {
|
||||||
e, err := ofxgo.NewCheckSup("FRONTONLY")
|
e, err := NewCheckSup("FRONTONLY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new CheckSup from string \"FRONTONLY\"\n")
|
t.Fatalf("Unexpected error creating new CheckSup from string \"FRONTONLY\"\n")
|
||||||
}
|
}
|
||||||
@ -256,7 +256,7 @@ func TestCheckSup(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "FRONTANDBACK", &e)
|
marshalHelper(t, "FRONTANDBACK", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewCheckSup("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewCheckSup("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new CheckSup from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new CheckSup from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -284,7 +284,7 @@ func TestCheckSup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCorrectAction(t *testing.T) {
|
func TestCorrectAction(t *testing.T) {
|
||||||
e, err := ofxgo.NewCorrectAction("DELETE")
|
e, err := NewCorrectAction("DELETE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new CorrectAction from string \"DELETE\"\n")
|
t.Fatalf("Unexpected error creating new CorrectAction from string \"DELETE\"\n")
|
||||||
}
|
}
|
||||||
@ -301,7 +301,7 @@ func TestCorrectAction(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "REPLACE", &e)
|
marshalHelper(t, "REPLACE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewCorrectAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewCorrectAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new CorrectAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new CorrectAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -329,7 +329,7 @@ func TestCorrectAction(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestBalType(t *testing.T) {
|
func TestBalType(t *testing.T) {
|
||||||
e, err := ofxgo.NewBalType("DOLLAR")
|
e, err := NewBalType("DOLLAR")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new BalType from string \"DOLLAR\"\n")
|
t.Fatalf("Unexpected error creating new BalType from string \"DOLLAR\"\n")
|
||||||
}
|
}
|
||||||
@ -346,7 +346,7 @@ func TestBalType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "NUMBER", &e)
|
marshalHelper(t, "NUMBER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewBalType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewBalType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new BalType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new BalType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -374,7 +374,7 @@ func TestBalType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestInv401kSource(t *testing.T) {
|
func TestInv401kSource(t *testing.T) {
|
||||||
e, err := ofxgo.NewInv401kSource("PRETAX")
|
e, err := NewInv401kSource("PRETAX")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new Inv401kSource from string \"PRETAX\"\n")
|
t.Fatalf("Unexpected error creating new Inv401kSource from string \"PRETAX\"\n")
|
||||||
}
|
}
|
||||||
@ -391,7 +391,7 @@ func TestInv401kSource(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHERNONVEST", &e)
|
marshalHelper(t, "OTHERNONVEST", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewInv401kSource("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewInv401kSource("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new Inv401kSource from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new Inv401kSource from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -419,7 +419,7 @@ func TestInv401kSource(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSubAcctType(t *testing.T) {
|
func TestSubAcctType(t *testing.T) {
|
||||||
e, err := ofxgo.NewSubAcctType("CASH")
|
e, err := NewSubAcctType("CASH")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new SubAcctType from string \"CASH\"\n")
|
t.Fatalf("Unexpected error creating new SubAcctType from string \"CASH\"\n")
|
||||||
}
|
}
|
||||||
@ -436,7 +436,7 @@ func TestSubAcctType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSubAcctType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSubAcctType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new SubAcctType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new SubAcctType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -464,7 +464,7 @@ func TestSubAcctType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestBuyType(t *testing.T) {
|
func TestBuyType(t *testing.T) {
|
||||||
e, err := ofxgo.NewBuyType("BUY")
|
e, err := NewBuyType("BUY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new BuyType from string \"BUY\"\n")
|
t.Fatalf("Unexpected error creating new BuyType from string \"BUY\"\n")
|
||||||
}
|
}
|
||||||
@ -481,7 +481,7 @@ func TestBuyType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "BUYTOCOVER", &e)
|
marshalHelper(t, "BUYTOCOVER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewBuyType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewBuyType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new BuyType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new BuyType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -509,7 +509,7 @@ func TestBuyType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOptAction(t *testing.T) {
|
func TestOptAction(t *testing.T) {
|
||||||
e, err := ofxgo.NewOptAction("EXERCISE")
|
e, err := NewOptAction("EXERCISE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OptAction from string \"EXERCISE\"\n")
|
t.Fatalf("Unexpected error creating new OptAction from string \"EXERCISE\"\n")
|
||||||
}
|
}
|
||||||
@ -526,7 +526,7 @@ func TestOptAction(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "EXPIRE", &e)
|
marshalHelper(t, "EXPIRE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOptAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOptAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OptAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OptAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -554,7 +554,7 @@ func TestOptAction(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTferAction(t *testing.T) {
|
func TestTferAction(t *testing.T) {
|
||||||
e, err := ofxgo.NewTferAction("IN")
|
e, err := NewTferAction("IN")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new TferAction from string \"IN\"\n")
|
t.Fatalf("Unexpected error creating new TferAction from string \"IN\"\n")
|
||||||
}
|
}
|
||||||
@ -571,7 +571,7 @@ func TestTferAction(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OUT", &e)
|
marshalHelper(t, "OUT", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewTferAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewTferAction("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new TferAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new TferAction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -599,7 +599,7 @@ func TestTferAction(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPosType(t *testing.T) {
|
func TestPosType(t *testing.T) {
|
||||||
e, err := ofxgo.NewPosType("LONG")
|
e, err := NewPosType("LONG")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new PosType from string \"LONG\"\n")
|
t.Fatalf("Unexpected error creating new PosType from string \"LONG\"\n")
|
||||||
}
|
}
|
||||||
@ -616,7 +616,7 @@ func TestPosType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "SHORT", &e)
|
marshalHelper(t, "SHORT", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewPosType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewPosType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new PosType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new PosType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -644,7 +644,7 @@ func TestPosType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSecured(t *testing.T) {
|
func TestSecured(t *testing.T) {
|
||||||
e, err := ofxgo.NewSecured("NAKED")
|
e, err := NewSecured("NAKED")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new Secured from string \"NAKED\"\n")
|
t.Fatalf("Unexpected error creating new Secured from string \"NAKED\"\n")
|
||||||
}
|
}
|
||||||
@ -661,7 +661,7 @@ func TestSecured(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "COVERED", &e)
|
marshalHelper(t, "COVERED", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSecured("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSecured("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new Secured from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new Secured from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -689,7 +689,7 @@ func TestSecured(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestDuration(t *testing.T) {
|
func TestDuration(t *testing.T) {
|
||||||
e, err := ofxgo.NewDuration("DAY")
|
e, err := NewDuration("DAY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new Duration from string \"DAY\"\n")
|
t.Fatalf("Unexpected error creating new Duration from string \"DAY\"\n")
|
||||||
}
|
}
|
||||||
@ -706,7 +706,7 @@ func TestDuration(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "IMMEDIATE", &e)
|
marshalHelper(t, "IMMEDIATE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewDuration("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewDuration("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new Duration from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new Duration from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -734,7 +734,7 @@ func TestDuration(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRestriction(t *testing.T) {
|
func TestRestriction(t *testing.T) {
|
||||||
e, err := ofxgo.NewRestriction("ALLORNONE")
|
e, err := NewRestriction("ALLORNONE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new Restriction from string \"ALLORNONE\"\n")
|
t.Fatalf("Unexpected error creating new Restriction from string \"ALLORNONE\"\n")
|
||||||
}
|
}
|
||||||
@ -751,7 +751,7 @@ func TestRestriction(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "NONE", &e)
|
marshalHelper(t, "NONE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewRestriction("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewRestriction("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new Restriction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new Restriction from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -779,7 +779,7 @@ func TestRestriction(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUnitType(t *testing.T) {
|
func TestUnitType(t *testing.T) {
|
||||||
e, err := ofxgo.NewUnitType("SHARES")
|
e, err := NewUnitType("SHARES")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new UnitType from string \"SHARES\"\n")
|
t.Fatalf("Unexpected error creating new UnitType from string \"SHARES\"\n")
|
||||||
}
|
}
|
||||||
@ -796,7 +796,7 @@ func TestUnitType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "CURRENCY", &e)
|
marshalHelper(t, "CURRENCY", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewUnitType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewUnitType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new UnitType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new UnitType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -824,7 +824,7 @@ func TestUnitType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOptBuyType(t *testing.T) {
|
func TestOptBuyType(t *testing.T) {
|
||||||
e, err := ofxgo.NewOptBuyType("BUYTOOPEN")
|
e, err := NewOptBuyType("BUYTOOPEN")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OptBuyType from string \"BUYTOOPEN\"\n")
|
t.Fatalf("Unexpected error creating new OptBuyType from string \"BUYTOOPEN\"\n")
|
||||||
}
|
}
|
||||||
@ -841,7 +841,7 @@ func TestOptBuyType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "BUYTOCLOSE", &e)
|
marshalHelper(t, "BUYTOCLOSE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOptBuyType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOptBuyType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OptBuyType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OptBuyType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -869,7 +869,7 @@ func TestOptBuyType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSellType(t *testing.T) {
|
func TestSellType(t *testing.T) {
|
||||||
e, err := ofxgo.NewSellType("SELL")
|
e, err := NewSellType("SELL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new SellType from string \"SELL\"\n")
|
t.Fatalf("Unexpected error creating new SellType from string \"SELL\"\n")
|
||||||
}
|
}
|
||||||
@ -886,7 +886,7 @@ func TestSellType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "SELLSHORT", &e)
|
marshalHelper(t, "SELLSHORT", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSellType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSellType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new SellType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new SellType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -914,7 +914,7 @@ func TestSellType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLoanPmtFreq(t *testing.T) {
|
func TestLoanPmtFreq(t *testing.T) {
|
||||||
e, err := ofxgo.NewLoanPmtFreq("WEEKLY")
|
e, err := NewLoanPmtFreq("WEEKLY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new LoanPmtFreq from string \"WEEKLY\"\n")
|
t.Fatalf("Unexpected error creating new LoanPmtFreq from string \"WEEKLY\"\n")
|
||||||
}
|
}
|
||||||
@ -931,7 +931,7 @@ func TestLoanPmtFreq(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewLoanPmtFreq("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewLoanPmtFreq("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new LoanPmtFreq from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new LoanPmtFreq from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -959,7 +959,7 @@ func TestLoanPmtFreq(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIncomeType(t *testing.T) {
|
func TestIncomeType(t *testing.T) {
|
||||||
e, err := ofxgo.NewIncomeType("CGLONG")
|
e, err := NewIncomeType("CGLONG")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new IncomeType from string \"CGLONG\"\n")
|
t.Fatalf("Unexpected error creating new IncomeType from string \"CGLONG\"\n")
|
||||||
}
|
}
|
||||||
@ -976,7 +976,7 @@ func TestIncomeType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "MISC", &e)
|
marshalHelper(t, "MISC", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewIncomeType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewIncomeType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new IncomeType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new IncomeType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1004,7 +1004,7 @@ func TestIncomeType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSellReason(t *testing.T) {
|
func TestSellReason(t *testing.T) {
|
||||||
e, err := ofxgo.NewSellReason("CALL")
|
e, err := NewSellReason("CALL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new SellReason from string \"CALL\"\n")
|
t.Fatalf("Unexpected error creating new SellReason from string \"CALL\"\n")
|
||||||
}
|
}
|
||||||
@ -1021,7 +1021,7 @@ func TestSellReason(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "MATURITY", &e)
|
marshalHelper(t, "MATURITY", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSellReason("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSellReason("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new SellReason from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new SellReason from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1049,7 +1049,7 @@ func TestSellReason(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOptSellType(t *testing.T) {
|
func TestOptSellType(t *testing.T) {
|
||||||
e, err := ofxgo.NewOptSellType("SELLTOCLOSE")
|
e, err := NewOptSellType("SELLTOCLOSE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OptSellType from string \"SELLTOCLOSE\"\n")
|
t.Fatalf("Unexpected error creating new OptSellType from string \"SELLTOCLOSE\"\n")
|
||||||
}
|
}
|
||||||
@ -1066,7 +1066,7 @@ func TestOptSellType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "SELLTOOPEN", &e)
|
marshalHelper(t, "SELLTOOPEN", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOptSellType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOptSellType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OptSellType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OptSellType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1094,7 +1094,7 @@ func TestOptSellType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRelType(t *testing.T) {
|
func TestRelType(t *testing.T) {
|
||||||
e, err := ofxgo.NewRelType("SPREAD")
|
e, err := NewRelType("SPREAD")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new RelType from string \"SPREAD\"\n")
|
t.Fatalf("Unexpected error creating new RelType from string \"SPREAD\"\n")
|
||||||
}
|
}
|
||||||
@ -1111,7 +1111,7 @@ func TestRelType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewRelType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewRelType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new RelType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new RelType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1139,7 +1139,7 @@ func TestRelType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCharType(t *testing.T) {
|
func TestCharType(t *testing.T) {
|
||||||
e, err := ofxgo.NewCharType("ALPHAONLY")
|
e, err := NewCharType("ALPHAONLY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new CharType from string \"ALPHAONLY\"\n")
|
t.Fatalf("Unexpected error creating new CharType from string \"ALPHAONLY\"\n")
|
||||||
}
|
}
|
||||||
@ -1156,7 +1156,7 @@ func TestCharType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "ALPHAANDNUMERIC", &e)
|
marshalHelper(t, "ALPHAANDNUMERIC", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewCharType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewCharType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new CharType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new CharType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1184,7 +1184,7 @@ func TestCharType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSyncMode(t *testing.T) {
|
func TestSyncMode(t *testing.T) {
|
||||||
e, err := ofxgo.NewSyncMode("FULL")
|
e, err := NewSyncMode("FULL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new SyncMode from string \"FULL\"\n")
|
t.Fatalf("Unexpected error creating new SyncMode from string \"FULL\"\n")
|
||||||
}
|
}
|
||||||
@ -1201,7 +1201,7 @@ func TestSyncMode(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "LITE", &e)
|
marshalHelper(t, "LITE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSyncMode("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSyncMode("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new SyncMode from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new SyncMode from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1229,7 +1229,7 @@ func TestSyncMode(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOfxSec(t *testing.T) {
|
func TestOfxSec(t *testing.T) {
|
||||||
e, err := ofxgo.NewOfxSec("NONE")
|
e, err := NewOfxSec("NONE")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OfxSec from string \"NONE\"\n")
|
t.Fatalf("Unexpected error creating new OfxSec from string \"NONE\"\n")
|
||||||
}
|
}
|
||||||
@ -1246,7 +1246,7 @@ func TestOfxSec(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "TYPE 1", &e)
|
marshalHelper(t, "TYPE 1", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOfxSec("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOfxSec("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OfxSec from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OfxSec from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1274,7 +1274,7 @@ func TestOfxSec(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestDebtType(t *testing.T) {
|
func TestDebtType(t *testing.T) {
|
||||||
e, err := ofxgo.NewDebtType("COUPON")
|
e, err := NewDebtType("COUPON")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new DebtType from string \"COUPON\"\n")
|
t.Fatalf("Unexpected error creating new DebtType from string \"COUPON\"\n")
|
||||||
}
|
}
|
||||||
@ -1291,7 +1291,7 @@ func TestDebtType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "ZERO", &e)
|
marshalHelper(t, "ZERO", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewDebtType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewDebtType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new DebtType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new DebtType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1319,7 +1319,7 @@ func TestDebtType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestDebtClass(t *testing.T) {
|
func TestDebtClass(t *testing.T) {
|
||||||
e, err := ofxgo.NewDebtClass("TREASURY")
|
e, err := NewDebtClass("TREASURY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new DebtClass from string \"TREASURY\"\n")
|
t.Fatalf("Unexpected error creating new DebtClass from string \"TREASURY\"\n")
|
||||||
}
|
}
|
||||||
@ -1336,7 +1336,7 @@ func TestDebtClass(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewDebtClass("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewDebtClass("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new DebtClass from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new DebtClass from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1364,7 +1364,7 @@ func TestDebtClass(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCouponFreq(t *testing.T) {
|
func TestCouponFreq(t *testing.T) {
|
||||||
e, err := ofxgo.NewCouponFreq("MONTHLY")
|
e, err := NewCouponFreq("MONTHLY")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new CouponFreq from string \"MONTHLY\"\n")
|
t.Fatalf("Unexpected error creating new CouponFreq from string \"MONTHLY\"\n")
|
||||||
}
|
}
|
||||||
@ -1381,7 +1381,7 @@ func TestCouponFreq(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewCouponFreq("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewCouponFreq("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new CouponFreq from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new CouponFreq from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1409,7 +1409,7 @@ func TestCouponFreq(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCallType(t *testing.T) {
|
func TestCallType(t *testing.T) {
|
||||||
e, err := ofxgo.NewCallType("CALL")
|
e, err := NewCallType("CALL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new CallType from string \"CALL\"\n")
|
t.Fatalf("Unexpected error creating new CallType from string \"CALL\"\n")
|
||||||
}
|
}
|
||||||
@ -1426,7 +1426,7 @@ func TestCallType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "MATURITY", &e)
|
marshalHelper(t, "MATURITY", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewCallType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewCallType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new CallType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new CallType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1454,7 +1454,7 @@ func TestCallType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAssetClass(t *testing.T) {
|
func TestAssetClass(t *testing.T) {
|
||||||
e, err := ofxgo.NewAssetClass("DOMESTICBOND")
|
e, err := NewAssetClass("DOMESTICBOND")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new AssetClass from string \"DOMESTICBOND\"\n")
|
t.Fatalf("Unexpected error creating new AssetClass from string \"DOMESTICBOND\"\n")
|
||||||
}
|
}
|
||||||
@ -1471,7 +1471,7 @@ func TestAssetClass(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewAssetClass("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewAssetClass("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new AssetClass from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new AssetClass from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1499,7 +1499,7 @@ func TestAssetClass(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMfType(t *testing.T) {
|
func TestMfType(t *testing.T) {
|
||||||
e, err := ofxgo.NewMfType("OPENEND")
|
e, err := NewMfType("OPENEND")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new MfType from string \"OPENEND\"\n")
|
t.Fatalf("Unexpected error creating new MfType from string \"OPENEND\"\n")
|
||||||
}
|
}
|
||||||
@ -1516,7 +1516,7 @@ func TestMfType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewMfType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewMfType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new MfType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new MfType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1544,7 +1544,7 @@ func TestMfType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOptType(t *testing.T) {
|
func TestOptType(t *testing.T) {
|
||||||
e, err := ofxgo.NewOptType("PUT")
|
e, err := NewOptType("PUT")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new OptType from string \"PUT\"\n")
|
t.Fatalf("Unexpected error creating new OptType from string \"PUT\"\n")
|
||||||
}
|
}
|
||||||
@ -1561,7 +1561,7 @@ func TestOptType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "CALL", &e)
|
marshalHelper(t, "CALL", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewOptType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewOptType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new OptType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new OptType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1589,7 +1589,7 @@ func TestOptType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStockType(t *testing.T) {
|
func TestStockType(t *testing.T) {
|
||||||
e, err := ofxgo.NewStockType("COMMON")
|
e, err := NewStockType("COMMON")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new StockType from string \"COMMON\"\n")
|
t.Fatalf("Unexpected error creating new StockType from string \"COMMON\"\n")
|
||||||
}
|
}
|
||||||
@ -1606,7 +1606,7 @@ func TestStockType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewStockType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewStockType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new StockType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new StockType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1634,7 +1634,7 @@ func TestStockType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestHolderType(t *testing.T) {
|
func TestHolderType(t *testing.T) {
|
||||||
e, err := ofxgo.NewHolderType("INDIVIDUAL")
|
e, err := NewHolderType("INDIVIDUAL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new HolderType from string \"INDIVIDUAL\"\n")
|
t.Fatalf("Unexpected error creating new HolderType from string \"INDIVIDUAL\"\n")
|
||||||
}
|
}
|
||||||
@ -1651,7 +1651,7 @@ func TestHolderType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewHolderType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewHolderType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new HolderType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new HolderType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1679,7 +1679,7 @@ func TestHolderType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAcctClassification(t *testing.T) {
|
func TestAcctClassification(t *testing.T) {
|
||||||
e, err := ofxgo.NewAcctClassification("PERSONAL")
|
e, err := NewAcctClassification("PERSONAL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new AcctClassification from string \"PERSONAL\"\n")
|
t.Fatalf("Unexpected error creating new AcctClassification from string \"PERSONAL\"\n")
|
||||||
}
|
}
|
||||||
@ -1696,7 +1696,7 @@ func TestAcctClassification(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "OTHER", &e)
|
marshalHelper(t, "OTHER", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewAcctClassification("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewAcctClassification("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new AcctClassification from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new AcctClassification from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1724,7 +1724,7 @@ func TestAcctClassification(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSvcStatus(t *testing.T) {
|
func TestSvcStatus(t *testing.T) {
|
||||||
e, err := ofxgo.NewSvcStatus("AVAIL")
|
e, err := NewSvcStatus("AVAIL")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new SvcStatus from string \"AVAIL\"\n")
|
t.Fatalf("Unexpected error creating new SvcStatus from string \"AVAIL\"\n")
|
||||||
}
|
}
|
||||||
@ -1741,7 +1741,7 @@ func TestSvcStatus(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "ACTIVE", &e)
|
marshalHelper(t, "ACTIVE", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewSvcStatus("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewSvcStatus("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new SvcStatus from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new SvcStatus from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
@ -1769,7 +1769,7 @@ func TestSvcStatus(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUsProductType(t *testing.T) {
|
func TestUsProductType(t *testing.T) {
|
||||||
e, err := ofxgo.NewUsProductType("401K")
|
e, err := NewUsProductType("401K")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating new UsProductType from string \"401K\"\n")
|
t.Fatalf("Unexpected error creating new UsProductType from string \"401K\"\n")
|
||||||
}
|
}
|
||||||
@ -1786,7 +1786,7 @@ func TestUsProductType(t *testing.T) {
|
|||||||
|
|
||||||
marshalHelper(t, "UGMA", &e)
|
marshalHelper(t, "UGMA", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.NewUsProductType("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := NewUsProductType("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("Expected error creating new UsProductType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
t.Fatalf("Expected error creating new UsProductType from string \"THISWILLNEVERBEAVALIDENUMSTRING\"\n")
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -41,31 +40,31 @@ func TestMarshalCCStatementRequest(t *testing.T) {
|
|||||||
</CREDITCARDMSGSRQV1>
|
</CREDITCARDMSGSRQV1>
|
||||||
</OFX>`
|
</OFX>`
|
||||||
|
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion203,
|
SpecVersion: OfxVersion203,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "myusername"
|
request.Signon.UserID = "myusername"
|
||||||
request.Signon.UserPass = "Pa$$word"
|
request.Signon.UserPass = "Pa$$word"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
request.Signon.Fid = "1987"
|
request.Signon.Fid = "1987"
|
||||||
|
|
||||||
statementRequest := ofxgo.CCStatementRequest{
|
statementRequest := CCStatementRequest{
|
||||||
TrnUID: "913846",
|
TrnUID: "913846",
|
||||||
CCAcctFrom: ofxgo.CCAcct{
|
CCAcctFrom: CCAcct{
|
||||||
AcctID: "XXXXXXXXXXXX1234",
|
AcctID: "XXXXXXXXXXXX1234",
|
||||||
},
|
},
|
||||||
DtStart: ofxgo.NewDateGMT(2017, 1, 1, 0, 0, 0, 0),
|
DtStart: NewDateGMT(2017, 1, 1, 0, 0, 0, 0),
|
||||||
Include: true,
|
Include: true,
|
||||||
}
|
}
|
||||||
request.CreditCard = append(request.CreditCard, &statementRequest)
|
request.CreditCard = append(request.CreditCard, &statementRequest)
|
||||||
|
|
||||||
request.SetClientFields(&client)
|
request.SetClientFields(&client)
|
||||||
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
||||||
request.Signon.DtClient = *ofxgo.NewDateGMT(2017, 3, 31, 15, 38, 48, 0)
|
request.Signon.DtClient = *NewDateGMT(2017, 3, 31, 15, 38, 48, 0)
|
||||||
|
|
||||||
marshalCheckRequest(t, &request, expectedString)
|
marshalCheckRequest(t, &request, expectedString)
|
||||||
}
|
}
|
||||||
@ -82,45 +81,45 @@ OLDFILEUID:NONE
|
|||||||
NEWFILEUID:NONE
|
NEWFILEUID:NONE
|
||||||
|
|
||||||
<OFX><SIGNONMSGSRSV1><SONRS><STATUS><CODE>0<SEVERITY>INFO<MESSAGE>SUCCESS</STATUS><DTSERVER>20170331154648.331[-4:EDT]<LANGUAGE>ENG<FI><ORG>01<FID>81729</FI></SONRS></SIGNONMSGSRSV1><CREDITCARDMSGSRSV1><CCSTMTTRNRS><TRNUID>59e850ad-7448-b4ce-4b71-29057763b306<STATUS><CODE>0<SEVERITY>INFO</STATUS><CCSTMTRS><CURDEF>USD<CCACCTFROM><ACCTID>9283744488463775</CCACCTFROM><BANKTRANLIST><DTSTART>20161201154648.688[-5:EST]<DTEND>20170331154648.688[-4:EDT]<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20170209120000[0:GMT]<TRNAMT>-7.96<FITID>2017020924435657040207171600195<NAME>SLICE OF NY</STMTTRN><STMTTRN><TRNTYPE>CREDIT<DTPOSTED>20161228120000[0:GMT]<TRNAMT>3830.46<FITID>2016122823633637200000258482730<NAME>Payment Thank You Electro</STMTTRN><STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20170327120000[0:GMT]<TRNAMT>-17.7<FITID>2017032724445727085300442885680<NAME>KROGER FUEL #9999</STMTTRN></BANKTRANLIST><LEDGERBAL><BALAMT>-9334<DTASOF>20170331080000.000[-4:EDT]</LEDGERBAL><AVAILBAL><BALAMT>7630.17<DTASOF>20170331080000.000[-4:EDT]</AVAILBAL></CCSTMTRS></CCSTMTTRNRS></CREDITCARDMSGSRSV1></OFX>`)
|
<OFX><SIGNONMSGSRSV1><SONRS><STATUS><CODE>0<SEVERITY>INFO<MESSAGE>SUCCESS</STATUS><DTSERVER>20170331154648.331[-4:EDT]<LANGUAGE>ENG<FI><ORG>01<FID>81729</FI></SONRS></SIGNONMSGSRSV1><CREDITCARDMSGSRSV1><CCSTMTTRNRS><TRNUID>59e850ad-7448-b4ce-4b71-29057763b306<STATUS><CODE>0<SEVERITY>INFO</STATUS><CCSTMTRS><CURDEF>USD<CCACCTFROM><ACCTID>9283744488463775</CCACCTFROM><BANKTRANLIST><DTSTART>20161201154648.688[-5:EST]<DTEND>20170331154648.688[-4:EDT]<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20170209120000[0:GMT]<TRNAMT>-7.96<FITID>2017020924435657040207171600195<NAME>SLICE OF NY</STMTTRN><STMTTRN><TRNTYPE>CREDIT<DTPOSTED>20161228120000[0:GMT]<TRNAMT>3830.46<FITID>2016122823633637200000258482730<NAME>Payment Thank You Electro</STMTTRN><STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20170327120000[0:GMT]<TRNAMT>-17.7<FITID>2017032724445727085300442885680<NAME>KROGER FUEL #9999</STMTTRN></BANKTRANLIST><LEDGERBAL><BALAMT>-9334<DTASOF>20170331080000.000[-4:EDT]</LEDGERBAL><AVAILBAL><BALAMT>7630.17<DTASOF>20170331080000.000[-4:EDT]</AVAILBAL></CCSTMTRS></CCSTMTTRNRS></CREDITCARDMSGSRSV1></OFX>`)
|
||||||
var expected ofxgo.Response
|
var expected Response
|
||||||
EDT := time.FixedZone("EDT", -4*60*60)
|
EDT := time.FixedZone("EDT", -4*60*60)
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
|
|
||||||
expected.Version = ofxgo.OfxVersion102
|
expected.Version = OfxVersion102
|
||||||
expected.Signon.Status.Code = 0
|
expected.Signon.Status.Code = 0
|
||||||
expected.Signon.Status.Severity = "INFO"
|
expected.Signon.Status.Severity = "INFO"
|
||||||
expected.Signon.Status.Message = "SUCCESS"
|
expected.Signon.Status.Message = "SUCCESS"
|
||||||
expected.Signon.DtServer = *ofxgo.NewDate(2017, 3, 31, 15, 46, 48, 331000000, EDT)
|
expected.Signon.DtServer = *NewDate(2017, 3, 31, 15, 46, 48, 331000000, EDT)
|
||||||
expected.Signon.Language = "ENG"
|
expected.Signon.Language = "ENG"
|
||||||
expected.Signon.Org = "01"
|
expected.Signon.Org = "01"
|
||||||
expected.Signon.Fid = "81729"
|
expected.Signon.Fid = "81729"
|
||||||
|
|
||||||
var trnamt1, trnamt2, trnamt3 ofxgo.Amount
|
var trnamt1, trnamt2, trnamt3 Amount
|
||||||
trnamt1.SetFrac64(-796, 100)
|
trnamt1.SetFrac64(-796, 100)
|
||||||
trnamt2.SetFrac64(383046, 100)
|
trnamt2.SetFrac64(383046, 100)
|
||||||
trnamt3.SetFrac64(-1770, 100)
|
trnamt3.SetFrac64(-1770, 100)
|
||||||
|
|
||||||
banktranlist := ofxgo.TransactionList{
|
banktranlist := TransactionList{
|
||||||
DtStart: *ofxgo.NewDate(2016, 12, 1, 15, 46, 48, 688000000, EST),
|
DtStart: *NewDate(2016, 12, 1, 15, 46, 48, 688000000, EST),
|
||||||
DtEnd: *ofxgo.NewDate(2017, 3, 31, 15, 46, 48, 688000000, EDT),
|
DtEnd: *NewDate(2017, 3, 31, 15, 46, 48, 688000000, EDT),
|
||||||
Transactions: []ofxgo.Transaction{
|
Transactions: []Transaction{
|
||||||
{
|
{
|
||||||
TrnType: ofxgo.TrnTypeDebit,
|
TrnType: TrnTypeDebit,
|
||||||
DtPosted: *ofxgo.NewDateGMT(2017, 2, 9, 12, 0, 0, 0),
|
DtPosted: *NewDateGMT(2017, 2, 9, 12, 0, 0, 0),
|
||||||
TrnAmt: trnamt1,
|
TrnAmt: trnamt1,
|
||||||
FiTID: "2017020924435657040207171600195",
|
FiTID: "2017020924435657040207171600195",
|
||||||
Name: "SLICE OF NY",
|
Name: "SLICE OF NY",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
TrnType: ofxgo.TrnTypeCredit,
|
TrnType: TrnTypeCredit,
|
||||||
DtPosted: *ofxgo.NewDateGMT(2016, 12, 28, 12, 0, 0, 0),
|
DtPosted: *NewDateGMT(2016, 12, 28, 12, 0, 0, 0),
|
||||||
TrnAmt: trnamt2,
|
TrnAmt: trnamt2,
|
||||||
FiTID: "2016122823633637200000258482730",
|
FiTID: "2016122823633637200000258482730",
|
||||||
Name: "Payment Thank You Electro",
|
Name: "Payment Thank You Electro",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
TrnType: ofxgo.TrnTypeDebit,
|
TrnType: TrnTypeDebit,
|
||||||
DtPosted: *ofxgo.NewDateGMT(2017, 3, 27, 12, 0, 0, 0),
|
DtPosted: *NewDateGMT(2017, 3, 27, 12, 0, 0, 0),
|
||||||
TrnAmt: trnamt3,
|
TrnAmt: trnamt3,
|
||||||
FiTID: "2017032724445727085300442885680",
|
FiTID: "2017032724445727085300442885680",
|
||||||
Name: "KROGER FUEL #9999",
|
Name: "KROGER FUEL #9999",
|
||||||
@ -128,34 +127,34 @@ NEWFILEUID:NONE
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var balamt, availbalamt ofxgo.Amount
|
var balamt, availbalamt Amount
|
||||||
balamt.SetFrac64(-933400, 100)
|
balamt.SetFrac64(-933400, 100)
|
||||||
availbalamt.SetFrac64(763017, 100)
|
availbalamt.SetFrac64(763017, 100)
|
||||||
|
|
||||||
usd, err := ofxgo.NewCurrSymbol("USD")
|
usd, err := NewCurrSymbol("USD")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error creating CurrSymbol for USD\n")
|
t.Fatalf("Unexpected error creating CurrSymbol for USD\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
statementResponse := ofxgo.CCStatementResponse{
|
statementResponse := CCStatementResponse{
|
||||||
TrnUID: "59e850ad-7448-b4ce-4b71-29057763b306",
|
TrnUID: "59e850ad-7448-b4ce-4b71-29057763b306",
|
||||||
Status: ofxgo.Status{
|
Status: Status{
|
||||||
Code: 0,
|
Code: 0,
|
||||||
Severity: "INFO",
|
Severity: "INFO",
|
||||||
},
|
},
|
||||||
CurDef: *usd,
|
CurDef: *usd,
|
||||||
CCAcctFrom: ofxgo.CCAcct{
|
CCAcctFrom: CCAcct{
|
||||||
AcctID: "9283744488463775",
|
AcctID: "9283744488463775",
|
||||||
},
|
},
|
||||||
BankTranList: &banktranlist,
|
BankTranList: &banktranlist,
|
||||||
BalAmt: balamt,
|
BalAmt: balamt,
|
||||||
DtAsOf: *ofxgo.NewDate(2017, 3, 31, 8, 0, 0, 0, EDT),
|
DtAsOf: *NewDate(2017, 3, 31, 8, 0, 0, 0, EDT),
|
||||||
AvailBalAmt: &availbalamt,
|
AvailBalAmt: &availbalamt,
|
||||||
AvailDtAsOf: ofxgo.NewDate(2017, 3, 31, 8, 0, 0, 0, EDT),
|
AvailDtAsOf: NewDate(2017, 3, 31, 8, 0, 0, 0, EDT),
|
||||||
}
|
}
|
||||||
expected.CreditCard = append(expected.CreditCard, &statementResponse)
|
expected.CreditCard = append(expected.CreditCard, &statementResponse)
|
||||||
|
|
||||||
response, err := ofxgo.ParseResponse(responseReader)
|
response, err := ParseResponse(responseReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
||||||
}
|
}
|
||||||
|
27
doc.go
27
doc.go
@ -71,33 +71,32 @@ account and print the balance:
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
var client ofxgo.Client // By not initializing them, we accept all default
|
var client Client // By not initializing them, we accept all default
|
||||||
// client values
|
// client values
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
|
|
||||||
// These are all specific to you and your financial institution
|
// These are all specific to you and your financial institution
|
||||||
request.URL = "https://ofx.example.com"
|
request.URL = "https://ofx.example.com"
|
||||||
request.Signon.UserID = ofxgo.String("john")
|
request.Signon.UserID = String("john")
|
||||||
request.Signon.UserPass = ofxgo.String("hunter2")
|
request.Signon.UserPass = String("hunter2")
|
||||||
request.Signon.Org = ofxgo.String("MyBank")
|
request.Signon.Org = String("MyBank")
|
||||||
request.Signon.Fid = ofxgo.String("0001")
|
request.Signon.Fid = String("0001")
|
||||||
|
|
||||||
uid, err := ofxgo.RandomUID()
|
uid, err := RandomUID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error creating uid for transaction:", err)
|
fmt.Println("Error creating uid for transaction:", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
statementRequest := ofxgo.StatementRequest{
|
statementRequest := StatementRequest{
|
||||||
TrnUID: *uid,
|
TrnUID: *uid,
|
||||||
BankAcctFrom: ofxgo.BankAcct{
|
BankAcctFrom: BankAcct{
|
||||||
BankID: ofxgo.String("123456789"),
|
BankID: String("123456789"),
|
||||||
AcctID: ofxgo.String("11111111111"),
|
AcctID: String("11111111111"),
|
||||||
AcctType: ofxgo.AcctTypeChecking,
|
AcctType: AcctTypeChecking,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +116,7 @@ account and print the balance:
|
|||||||
|
|
||||||
if len(response.Bank) < 1 {
|
if len(response.Bank) < 1 {
|
||||||
fmt.Println("No banking messages received")
|
fmt.Println("No banking messages received")
|
||||||
} else if stmt, ok := response.Bank[0].(*ofxgo.StatementResponse); ok {
|
} else if stmt, ok := response.Bank[0].(*StatementResponse); ok {
|
||||||
fmt.Printf("Balance: %s %s (as of %s)\n", stmt.BalAmt, stmt.CurDef, stmt.DtAsOf)
|
fmt.Printf("Balance: %s %s (as of %s)\n", stmt.BalAmt, stmt.CurDef, stmt.DtAsOf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,8 +65,9 @@ header = """package ofxgo
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/aclindsa/xml"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/aclindsa/xml"
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -164,7 +165,7 @@ with open("constants.go", 'w') as f:
|
|||||||
constNames=constNames,
|
constNames=constNames,
|
||||||
upperValueString=upperValueString))
|
upperValueString=upperValueString))
|
||||||
|
|
||||||
test_header = """package ofxgo_test
|
test_header = """package ofxgo
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do not edit this file by hand. It is auto-generated by calling `go generate`.
|
* Do not edit this file by hand. It is auto-generated by calling `go generate`.
|
||||||
@ -173,16 +174,16 @@ test_header = """package ofxgo_test
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"github.com/aclindsa/xml"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/aclindsa/xml"
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
test_template = """
|
test_template = """
|
||||||
func Test{enum}(t *testing.T) {{
|
func Test{enum}(t *testing.T) {{
|
||||||
e, err := ofxgo.New{enum}("{firstValueUpper}")
|
e, err := New{enum}("{firstValueUpper}")
|
||||||
if err != nil {{
|
if err != nil {{
|
||||||
t.Fatalf("Unexpected error creating new {enum} from string \\\"{firstValueUpper}\\\"\\n")
|
t.Fatalf("Unexpected error creating new {enum} from string \\\"{firstValueUpper}\\\"\\n")
|
||||||
}}
|
}}
|
||||||
@ -199,7 +200,7 @@ func Test{enum}(t *testing.T) {{
|
|||||||
|
|
||||||
marshalHelper(t, "{lastValueUpper}", &e)
|
marshalHelper(t, "{lastValueUpper}", &e)
|
||||||
|
|
||||||
overwritten, err := ofxgo.New{enum}("THISWILLNEVERBEAVALIDENUMSTRING")
|
overwritten, err := New{enum}("THISWILLNEVERBEAVALIDENUMSTRING")
|
||||||
if err == nil {{
|
if err == nil {{
|
||||||
t.Fatalf("Expected error creating new {enum} from string \\\"THISWILLNEVERBEAVALIDENUMSTRING\\\"\\n")
|
t.Fatalf("Expected error creating new {enum} from string \\\"THISWILLNEVERBEAVALIDENUMSTRING\\\"\\n")
|
||||||
}}
|
}}
|
||||||
|
741
invstmt_test.go
741
invstmt_test.go
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,6 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -36,13 +35,13 @@ func TestMarshalProfileRequest(t *testing.T) {
|
|||||||
</PROFMSGSRQV1>
|
</PROFMSGSRQV1>
|
||||||
</OFX>`
|
</OFX>`
|
||||||
|
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion203,
|
SpecVersion: OfxVersion203,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "anonymous00000000000000000000000"
|
request.Signon.UserID = "anonymous00000000000000000000000"
|
||||||
request.Signon.UserPass = "anonymous00000000000000000000000"
|
request.Signon.UserPass = "anonymous00000000000000000000000"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
@ -50,15 +49,15 @@ func TestMarshalProfileRequest(t *testing.T) {
|
|||||||
|
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
|
|
||||||
profileRequest := ofxgo.ProfileRequest{
|
profileRequest := ProfileRequest{
|
||||||
TrnUID: "983373",
|
TrnUID: "983373",
|
||||||
DtProfUp: *ofxgo.NewDate(2016, 1, 1, 0, 0, 0, 0, EST),
|
DtProfUp: *NewDate(2016, 1, 1, 0, 0, 0, 0, EST),
|
||||||
}
|
}
|
||||||
request.Prof = append(request.Prof, &profileRequest)
|
request.Prof = append(request.Prof, &profileRequest)
|
||||||
|
|
||||||
request.SetClientFields(&client)
|
request.SetClientFields(&client)
|
||||||
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
||||||
request.Signon.DtClient = *ofxgo.NewDate(2016, 6, 14, 7, 34, 0, 0, EST)
|
request.Signon.DtClient = *NewDate(2016, 6, 14, 7, 34, 0, 0, EST)
|
||||||
|
|
||||||
marshalCheckRequest(t, &request, expectedString)
|
marshalCheckRequest(t, &request, expectedString)
|
||||||
}
|
}
|
||||||
@ -213,89 +212,89 @@ NEWFILEUID:NONE
|
|||||||
</PROFTRNRS>
|
</PROFTRNRS>
|
||||||
</PROFMSGSRSV1>
|
</PROFMSGSRSV1>
|
||||||
</OFX>`)
|
</OFX>`)
|
||||||
var expected ofxgo.Response
|
var expected Response
|
||||||
|
|
||||||
expected.Version = ofxgo.OfxVersion102
|
expected.Version = OfxVersion102
|
||||||
expected.Signon.Status.Code = 0
|
expected.Signon.Status.Code = 0
|
||||||
expected.Signon.Status.Severity = "INFO"
|
expected.Signon.Status.Severity = "INFO"
|
||||||
expected.Signon.DtServer = *ofxgo.NewDateGMT(2017, 4, 3, 9, 34, 58, 0)
|
expected.Signon.DtServer = *NewDateGMT(2017, 4, 3, 9, 34, 58, 0)
|
||||||
expected.Signon.Language = "ENG"
|
expected.Signon.Language = "ENG"
|
||||||
expected.Signon.DtProfUp = ofxgo.NewDateGMT(2002, 11, 19, 14, 0, 0, 0)
|
expected.Signon.DtProfUp = NewDateGMT(2002, 11, 19, 14, 0, 0, 0)
|
||||||
|
|
||||||
profileResponse := ofxgo.ProfileResponse{
|
profileResponse := ProfileResponse{
|
||||||
TrnUID: "0f94ce83-13b7-7568-e4fc-c02c7b47e7ab",
|
TrnUID: "0f94ce83-13b7-7568-e4fc-c02c7b47e7ab",
|
||||||
Status: ofxgo.Status{
|
Status: Status{
|
||||||
Code: 0,
|
Code: 0,
|
||||||
Severity: "INFO",
|
Severity: "INFO",
|
||||||
},
|
},
|
||||||
MessageSetList: ofxgo.MessageSetList{
|
MessageSetList: MessageSetList{
|
||||||
ofxgo.MessageSet{
|
MessageSet{
|
||||||
Name: "SIGNONMSGSETV1",
|
Name: "SIGNONMSGSETV1",
|
||||||
Ver: 1,
|
Ver: 1,
|
||||||
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
||||||
OfxSec: ofxgo.OfxSecNone,
|
OfxSec: OfxSecNone,
|
||||||
TranspSec: true,
|
TranspSec: true,
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Language: []ofxgo.String{"ENG"},
|
Language: []String{"ENG"},
|
||||||
SyncMode: ofxgo.SyncModeLite,
|
SyncMode: SyncModeLite,
|
||||||
RespFileER: false,
|
RespFileER: false,
|
||||||
// Ignored: <INTU.TIMEOUT>300
|
// Ignored: <INTU.TIMEOUT>300
|
||||||
},
|
},
|
||||||
ofxgo.MessageSet{
|
MessageSet{
|
||||||
Name: "SIGNUPMSGSETV1",
|
Name: "SIGNUPMSGSETV1",
|
||||||
Ver: 1,
|
Ver: 1,
|
||||||
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
||||||
OfxSec: ofxgo.OfxSecNone,
|
OfxSec: OfxSecNone,
|
||||||
TranspSec: true,
|
TranspSec: true,
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Language: []ofxgo.String{"ENG"},
|
Language: []String{"ENG"},
|
||||||
SyncMode: ofxgo.SyncModeLite,
|
SyncMode: SyncModeLite,
|
||||||
RespFileER: false,
|
RespFileER: false,
|
||||||
// Ignored: <INTU.TIMEOUT>300
|
// Ignored: <INTU.TIMEOUT>300
|
||||||
},
|
},
|
||||||
ofxgo.MessageSet{
|
MessageSet{
|
||||||
Name: "INVSTMTMSGSETV1",
|
Name: "INVSTMTMSGSETV1",
|
||||||
Ver: 1,
|
Ver: 1,
|
||||||
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
||||||
OfxSec: ofxgo.OfxSecNone,
|
OfxSec: OfxSecNone,
|
||||||
TranspSec: true,
|
TranspSec: true,
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Language: []ofxgo.String{"ENG"},
|
Language: []String{"ENG"},
|
||||||
SyncMode: ofxgo.SyncModeLite,
|
SyncMode: SyncModeLite,
|
||||||
RespFileER: false,
|
RespFileER: false,
|
||||||
// Ignored: <INTU.TIMEOUT>300
|
// Ignored: <INTU.TIMEOUT>300
|
||||||
},
|
},
|
||||||
ofxgo.MessageSet{
|
MessageSet{
|
||||||
Name: "SECLISTMSGSETV1",
|
Name: "SECLISTMSGSETV1",
|
||||||
Ver: 1,
|
Ver: 1,
|
||||||
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
||||||
OfxSec: ofxgo.OfxSecNone,
|
OfxSec: OfxSecNone,
|
||||||
TranspSec: true,
|
TranspSec: true,
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Language: []ofxgo.String{"ENG"},
|
Language: []String{"ENG"},
|
||||||
SyncMode: ofxgo.SyncModeLite,
|
SyncMode: SyncModeLite,
|
||||||
RespFileER: false,
|
RespFileER: false,
|
||||||
// Ignored: <INTU.TIMEOUT>300
|
// Ignored: <INTU.TIMEOUT>300
|
||||||
},
|
},
|
||||||
ofxgo.MessageSet{
|
MessageSet{
|
||||||
Name: "PROFMSGSETV1",
|
Name: "PROFMSGSETV1",
|
||||||
Ver: 1,
|
Ver: 1,
|
||||||
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
URL: "https://ofx.example.com/cgi-ofx/exampleofx",
|
||||||
OfxSec: ofxgo.OfxSecNone,
|
OfxSec: OfxSecNone,
|
||||||
TranspSec: true,
|
TranspSec: true,
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Language: []ofxgo.String{"ENG"},
|
Language: []String{"ENG"},
|
||||||
SyncMode: ofxgo.SyncModeLite,
|
SyncMode: SyncModeLite,
|
||||||
RespFileER: false,
|
RespFileER: false,
|
||||||
// Ignored: <INTU.TIMEOUT>300
|
// Ignored: <INTU.TIMEOUT>300
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
SignonInfoList: []ofxgo.SignonInfo{
|
SignonInfoList: []SignonInfo{
|
||||||
{
|
{
|
||||||
SignonRealm: "Example Trade",
|
SignonRealm: "Example Trade",
|
||||||
Min: 1,
|
Min: 1,
|
||||||
Max: 32,
|
Max: 32,
|
||||||
CharType: ofxgo.CharTypeAlphaOrNumeric,
|
CharType: CharTypeAlphaOrNumeric,
|
||||||
CaseSen: false,
|
CaseSen: false,
|
||||||
Special: true,
|
Special: true,
|
||||||
Spaces: false,
|
Spaces: false,
|
||||||
@ -303,7 +302,7 @@ NEWFILEUID:NONE
|
|||||||
ChgPinFirst: false,
|
ChgPinFirst: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
DtProfUp: *ofxgo.NewDateGMT(2002, 11, 19, 14, 0, 0, 0),
|
DtProfUp: *NewDateGMT(2002, 11, 19, 14, 0, 0, 0),
|
||||||
FiName: "Example Trade Financial",
|
FiName: "Example Trade Financial",
|
||||||
Addr1: "5555 Buhunkus Drive",
|
Addr1: "5555 Buhunkus Drive",
|
||||||
City: "Someville",
|
City: "Someville",
|
||||||
@ -319,7 +318,7 @@ NEWFILEUID:NONE
|
|||||||
}
|
}
|
||||||
expected.Prof = append(expected.Prof, &profileResponse)
|
expected.Prof = append(expected.Prof, &profileResponse)
|
||||||
|
|
||||||
response, err := ofxgo.ParseResponse(responseReader)
|
response, err := ParseResponse(responseReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@ -10,7 +9,7 @@ import (
|
|||||||
// match leading and trailing whitespace on each line
|
// match leading and trailing whitespace on each line
|
||||||
var ignoreSpacesRe = regexp.MustCompile("(?m)^[ \t]+|[ \t]*$[\r\n]+")
|
var ignoreSpacesRe = regexp.MustCompile("(?m)^[ \t]+|[ \t]*$[\r\n]+")
|
||||||
|
|
||||||
func marshalCheckRequest(t *testing.T, request *ofxgo.Request, expected string) {
|
func marshalCheckRequest(t *testing.T, request *Request, expected string) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
buf, err := request.Marshal()
|
buf, err := request.Marshal()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
14
response.go
14
response.go
@ -380,7 +380,7 @@ func DecodeResponse(reader io.Reader) (*Response, error) {
|
|||||||
|
|
||||||
// Valid returns whether the Response is valid according to the OFX spec
|
// Valid returns whether the Response is valid according to the OFX spec
|
||||||
func (or *Response) Valid() (bool, error) {
|
func (or *Response) Valid() (bool, error) {
|
||||||
var errs ErrInvalid
|
var errs errInvalid
|
||||||
if ok, err := or.Signon.Valid(or.Version); !ok {
|
if ok, err := or.Signon.Valid(or.Version); !ok {
|
||||||
errs.AddErr(err)
|
errs.AddErr(err)
|
||||||
}
|
}
|
||||||
@ -477,11 +477,11 @@ func (or *Response) Marshal() (*bytes.Buffer, error) {
|
|||||||
return &b, nil
|
return &b, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrInvalid represents validation failures while parsing an OFX response
|
// errInvalid represents validation failures while parsing an OFX response
|
||||||
// If an institution returns slightly malformed data, ParseResponse will return a best-effort parsed response and a validation error.
|
// If an institution returns slightly malformed data, ParseResponse will return a best-effort parsed response and a validation error.
|
||||||
type ErrInvalid []error
|
type errInvalid []error
|
||||||
|
|
||||||
func (e ErrInvalid) Error() string {
|
func (e errInvalid) Error() string {
|
||||||
var errStrings []string
|
var errStrings []string
|
||||||
for _, err := range e {
|
for _, err := range e {
|
||||||
errStrings = append(errStrings, err.Error())
|
errStrings = append(errStrings, err.Error())
|
||||||
@ -489,9 +489,9 @@ func (e ErrInvalid) Error() string {
|
|||||||
return fmt.Sprintf("Validation failed: %s", strings.Join(errStrings, "; "))
|
return fmt.Sprintf("Validation failed: %s", strings.Join(errStrings, "; "))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ErrInvalid) AddErr(err error) {
|
func (e *errInvalid) AddErr(err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errs, ok := err.(ErrInvalid); ok {
|
if errs, ok := err.(errInvalid); ok {
|
||||||
*e = append(*e, errs...)
|
*e = append(*e, errs...)
|
||||||
} else {
|
} else {
|
||||||
*e = append(*e, err)
|
*e = append(*e, err)
|
||||||
@ -499,7 +499,7 @@ func (e *ErrInvalid) AddErr(err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e ErrInvalid) ErrOrNil() error {
|
func (e errInvalid) ErrOrNil() error {
|
||||||
if len(e) > 0 {
|
if len(e) > 0 {
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
@ -9,7 +9,6 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"github.com/aclindsa/xml"
|
"github.com/aclindsa/xml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -135,16 +134,16 @@ func checkEqual(t *testing.T, fieldName string, expected, actual reflect.Value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkResponsesEqual(t *testing.T, expected, actual *ofxgo.Response) {
|
func checkResponsesEqual(t *testing.T, expected, actual *Response) {
|
||||||
checkEqual(t, "", reflect.ValueOf(expected), reflect.ValueOf(actual))
|
checkEqual(t, "", reflect.ValueOf(expected), reflect.ValueOf(actual))
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkResponseRoundTrip(t *testing.T, response *ofxgo.Response) {
|
func checkResponseRoundTrip(t *testing.T, response *Response) {
|
||||||
b, err := response.Marshal()
|
b, err := response.Marshal()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error re-marshaling OFX response: %s\n", err)
|
t.Fatalf("Unexpected error re-marshaling OFX response: %s\n", err)
|
||||||
}
|
}
|
||||||
roundtripped, err := ofxgo.ParseResponse(b)
|
roundtripped, err := ParseResponse(b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error re-parsing OFX response: %s\n", err)
|
t.Fatalf("Unexpected error re-parsing OFX response: %s\n", err)
|
||||||
}
|
}
|
||||||
@ -164,7 +163,7 @@ func TestValidSamples(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error opening %s: %s\n", path, err)
|
t.Fatalf("Unexpected error opening %s: %s\n", path, err)
|
||||||
}
|
}
|
||||||
response, err := ofxgo.ParseResponse(file)
|
response, err := ParseResponse(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error parsing OFX response in %s: %s\n", path, err)
|
t.Fatalf("Unexpected error parsing OFX response in %s: %s\n", path, err)
|
||||||
}
|
}
|
||||||
@ -212,12 +211,12 @@ NEWFILEUID:NONE
|
|||||||
const expectedErr = "Validation failed: Invalid STATUS>SEVERITY; Invalid STATUS>SEVERITY"
|
const expectedErr = "Validation failed: Invalid STATUS>SEVERITY; Invalid STATUS>SEVERITY"
|
||||||
|
|
||||||
t.Run("parse response", func(t *testing.T) {
|
t.Run("parse response", func(t *testing.T) {
|
||||||
resp, err := ofxgo.ParseResponse(bytes.NewReader([]byte(invalidResponse)))
|
resp, err := ParseResponse(bytes.NewReader([]byte(invalidResponse)))
|
||||||
expectedErr := "Validation failed: Invalid STATUS>SEVERITY; Invalid STATUS>SEVERITY"
|
expectedErr := "Validation failed: Invalid STATUS>SEVERITY; Invalid STATUS>SEVERITY"
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("ParseResponse should fail with %q, found nil", expectedErr)
|
t.Fatalf("ParseResponse should fail with %q, found nil", expectedErr)
|
||||||
}
|
}
|
||||||
if _, ok := err.(ofxgo.ErrInvalid); !ok {
|
if _, ok := err.(errInvalid); !ok {
|
||||||
t.Errorf("ParseResponse should return an error with type ErrInvalid, found %T", err)
|
t.Errorf("ParseResponse should return an error with type ErrInvalid, found %T", err)
|
||||||
}
|
}
|
||||||
if err.Error() != expectedErr {
|
if err.Error() != expectedErr {
|
||||||
@ -229,7 +228,7 @@ NEWFILEUID:NONE
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("parse failed", func(t *testing.T) {
|
t.Run("parse failed", func(t *testing.T) {
|
||||||
resp, err := ofxgo.ParseResponse(bytes.NewReader(nil))
|
resp, err := ParseResponse(bytes.NewReader(nil))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Error("ParseResponse should fail to decode")
|
t.Error("ParseResponse should fail to decode")
|
||||||
}
|
}
|
||||||
@ -239,7 +238,7 @@ NEWFILEUID:NONE
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("decode, then validate response", func(t *testing.T) {
|
t.Run("decode, then validate response", func(t *testing.T) {
|
||||||
resp, err := ofxgo.DecodeResponse(bytes.NewReader([]byte(invalidResponse)))
|
resp, err := DecodeResponse(bytes.NewReader([]byte(invalidResponse)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected error: %s", err.Error())
|
t.Errorf("Unexpected error: %s", err.Error())
|
||||||
}
|
}
|
||||||
@ -253,7 +252,7 @@ NEWFILEUID:NONE
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("response.Valid() should fail with %q, found nil", expectedErr)
|
t.Fatalf("response.Valid() should fail with %q, found nil", expectedErr)
|
||||||
}
|
}
|
||||||
if _, ok := err.(ofxgo.ErrInvalid); !ok {
|
if _, ok := err.(errInvalid); !ok {
|
||||||
t.Errorf("response.Valid() should return an error of type ErrInvalid, found: %T", err)
|
t.Errorf("response.Valid() should return an error of type ErrInvalid, found: %T", err)
|
||||||
}
|
}
|
||||||
if err.Error() != expectedErr {
|
if err.Error() != expectedErr {
|
||||||
@ -264,7 +263,7 @@ NEWFILEUID:NONE
|
|||||||
|
|
||||||
func TestErrInvalidError(t *testing.T) {
|
func TestErrInvalidError(t *testing.T) {
|
||||||
expectedErr := `Validation failed: A; B; C`
|
expectedErr := `Validation failed: A; B; C`
|
||||||
actualErr := ofxgo.ErrInvalid{
|
actualErr := errInvalid{
|
||||||
errors.New("A"),
|
errors.New("A"),
|
||||||
errors.New("B"),
|
errors.New("B"),
|
||||||
errors.New("C"),
|
errors.New("C"),
|
||||||
@ -276,7 +275,7 @@ func TestErrInvalidError(t *testing.T) {
|
|||||||
|
|
||||||
func TestErrInvalidAddErr(t *testing.T) {
|
func TestErrInvalidAddErr(t *testing.T) {
|
||||||
t.Run("nil error should be a no-op", func(t *testing.T) {
|
t.Run("nil error should be a no-op", func(t *testing.T) {
|
||||||
var errs ofxgo.ErrInvalid
|
var errs errInvalid
|
||||||
errs.AddErr(nil)
|
errs.AddErr(nil)
|
||||||
if len(errs) != 0 {
|
if len(errs) != 0 {
|
||||||
t.Errorf("Nil err should not be added")
|
t.Errorf("Nil err should not be added")
|
||||||
@ -284,18 +283,18 @@ func TestErrInvalidAddErr(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("adds an error normally", func(t *testing.T) {
|
t.Run("adds an error normally", func(t *testing.T) {
|
||||||
var errs ofxgo.ErrInvalid
|
var errs errInvalid
|
||||||
errs.AddErr(errors.New("some error"))
|
errs.AddErr(errors.New("some error"))
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("adding the same type should flatten the errors", func(t *testing.T) {
|
t.Run("adding the same type should flatten the errors", func(t *testing.T) {
|
||||||
var errs ofxgo.ErrInvalid
|
var errs errInvalid
|
||||||
errs.AddErr(ofxgo.ErrInvalid{
|
errs.AddErr(errInvalid{
|
||||||
errors.New("A"),
|
errors.New("A"),
|
||||||
errors.New("B"),
|
errors.New("B"),
|
||||||
})
|
})
|
||||||
errs.AddErr(ofxgo.ErrInvalid{
|
errs.AddErr(errInvalid{
|
||||||
errors.New("C"),
|
errors.New("C"),
|
||||||
})
|
})
|
||||||
if len(errs) != 3 {
|
if len(errs) != 3 {
|
||||||
@ -305,7 +304,7 @@ func TestErrInvalidAddErr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestErrInvalidErrOrNil(t *testing.T) {
|
func TestErrInvalidErrOrNil(t *testing.T) {
|
||||||
var errs ofxgo.ErrInvalid
|
var errs errInvalid
|
||||||
if err := errs.ErrOrNil(); err != nil {
|
if err := errs.ErrOrNil(); err != nil {
|
||||||
t.Errorf("No added errors should return nil, found: %v", err)
|
t.Errorf("No added errors should return nil, found: %v", err)
|
||||||
}
|
}
|
||||||
@ -315,11 +314,11 @@ func TestErrInvalidErrOrNil(t *testing.T) {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal("Expected an error, found nil.")
|
t.Fatal("Expected an error, found nil.")
|
||||||
}
|
}
|
||||||
if _, ok := err.(ofxgo.ErrInvalid); !ok {
|
if _, ok := err.(errInvalid); !ok {
|
||||||
t.Fatalf("Expected err to be of type ErrInvalid, found: %T", err)
|
t.Fatalf("Expected err to be of type errInvalid, found: %T", err)
|
||||||
}
|
}
|
||||||
errInvalid := err.(ofxgo.ErrInvalid)
|
errInv := err.(errInvalid)
|
||||||
if len(errInvalid) != 1 || errInvalid[0] != someError {
|
if len(errInv) != 1 || errInv[0] != someError {
|
||||||
t.Errorf("Expected ErrOrNil to return itself, found: %v", err)
|
t.Errorf("Expected ErrOrNil to return itself, found: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMarshalInvalidSignons(t *testing.T) {
|
func TestMarshalInvalidSignons(t *testing.T) {
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion203,
|
SpecVersion: OfxVersion203,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "myusername"
|
request.Signon.UserID = "myusername"
|
||||||
request.Signon.UserPass = "Pa$$word"
|
request.Signon.UserPass = "Pa$$word"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -37,27 +36,27 @@ func TestMarshalAcctInfoRequest(t *testing.T) {
|
|||||||
|
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
|
|
||||||
var client = ofxgo.BasicClient{
|
var client = BasicClient{
|
||||||
AppID: "OFXGO",
|
AppID: "OFXGO",
|
||||||
AppVer: "0001",
|
AppVer: "0001",
|
||||||
SpecVersion: ofxgo.OfxVersion203,
|
SpecVersion: OfxVersion203,
|
||||||
}
|
}
|
||||||
|
|
||||||
var request ofxgo.Request
|
var request Request
|
||||||
request.Signon.UserID = "myusername"
|
request.Signon.UserID = "myusername"
|
||||||
request.Signon.UserPass = "Pa$$word"
|
request.Signon.UserPass = "Pa$$word"
|
||||||
request.Signon.Org = "BNK"
|
request.Signon.Org = "BNK"
|
||||||
request.Signon.Fid = "1987"
|
request.Signon.Fid = "1987"
|
||||||
|
|
||||||
acctInfoRequest := ofxgo.AcctInfoRequest{
|
acctInfoRequest := AcctInfoRequest{
|
||||||
TrnUID: "e3ad9bda-38fa-4e5b-8099-1bd567ddef7a",
|
TrnUID: "e3ad9bda-38fa-4e5b-8099-1bd567ddef7a",
|
||||||
DtAcctUp: *ofxgo.NewDate(2015, 12, 21, 18, 29, 45, 0, EST),
|
DtAcctUp: *NewDate(2015, 12, 21, 18, 29, 45, 0, EST),
|
||||||
}
|
}
|
||||||
request.Signup = append(request.Signup, &acctInfoRequest)
|
request.Signup = append(request.Signup, &acctInfoRequest)
|
||||||
|
|
||||||
request.SetClientFields(&client)
|
request.SetClientFields(&client)
|
||||||
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
// Overwrite the DtClient value set by SetClientFields to time.Now()
|
||||||
request.Signon.DtClient = *ofxgo.NewDate(2016, 1, 15, 11, 23, 0, 0, EST)
|
request.Signon.DtClient = *NewDate(2016, 1, 15, 11, 23, 0, 0, EST)
|
||||||
|
|
||||||
marshalCheckRequest(t, &request, expectedString)
|
marshalCheckRequest(t, &request, expectedString)
|
||||||
}
|
}
|
||||||
@ -110,38 +109,38 @@ func TestUnmarshalAcctInfoResponse(t *testing.T) {
|
|||||||
</ACCTINFOTRNRS>
|
</ACCTINFOTRNRS>
|
||||||
</SIGNUPMSGSRSV1>
|
</SIGNUPMSGSRSV1>
|
||||||
</OFX>`)
|
</OFX>`)
|
||||||
var expected ofxgo.Response
|
var expected Response
|
||||||
|
|
||||||
expected.Version = ofxgo.OfxVersion203
|
expected.Version = OfxVersion203
|
||||||
expected.Signon.Status.Code = 0
|
expected.Signon.Status.Code = 0
|
||||||
expected.Signon.Status.Severity = "INFO"
|
expected.Signon.Status.Severity = "INFO"
|
||||||
expected.Signon.DtServer = *ofxgo.NewDateGMT(2006, 1, 15, 11, 23, 03, 0)
|
expected.Signon.DtServer = *NewDateGMT(2006, 1, 15, 11, 23, 03, 0)
|
||||||
expected.Signon.Language = "ENG"
|
expected.Signon.Language = "ENG"
|
||||||
expected.Signon.DtProfUp = ofxgo.NewDateGMT(2005, 2, 21, 9, 13, 0, 0)
|
expected.Signon.DtProfUp = NewDateGMT(2005, 2, 21, 9, 13, 0, 0)
|
||||||
expected.Signon.DtAcctUp = ofxgo.NewDateGMT(2006, 1, 2, 16, 0, 0, 0)
|
expected.Signon.DtAcctUp = NewDateGMT(2006, 1, 2, 16, 0, 0, 0)
|
||||||
expected.Signon.Org = "BNK"
|
expected.Signon.Org = "BNK"
|
||||||
expected.Signon.Fid = "1987"
|
expected.Signon.Fid = "1987"
|
||||||
|
|
||||||
bankacctinfo := ofxgo.BankAcctInfo{
|
bankacctinfo := BankAcctInfo{
|
||||||
BankAcctFrom: ofxgo.BankAcct{
|
BankAcctFrom: BankAcct{
|
||||||
BankID: "8367556009",
|
BankID: "8367556009",
|
||||||
AcctID: "000999847",
|
AcctID: "000999847",
|
||||||
AcctType: ofxgo.AcctTypeMoneyMrkt,
|
AcctType: AcctTypeMoneyMrkt,
|
||||||
},
|
},
|
||||||
SupTxDl: true,
|
SupTxDl: true,
|
||||||
XferSrc: true,
|
XferSrc: true,
|
||||||
XferDest: true,
|
XferDest: true,
|
||||||
SvcStatus: ofxgo.SvcStatusActive,
|
SvcStatus: SvcStatusActive,
|
||||||
}
|
}
|
||||||
|
|
||||||
acctInfoResponse := ofxgo.AcctInfoResponse{
|
acctInfoResponse := AcctInfoResponse{
|
||||||
TrnUID: "10938754",
|
TrnUID: "10938754",
|
||||||
Status: ofxgo.Status{
|
Status: Status{
|
||||||
Code: 0,
|
Code: 0,
|
||||||
Severity: "INFO",
|
Severity: "INFO",
|
||||||
},
|
},
|
||||||
DtAcctUp: *ofxgo.NewDateGMT(2005, 2, 28, 0, 0, 0, 0),
|
DtAcctUp: *NewDateGMT(2005, 2, 28, 0, 0, 0, 0),
|
||||||
AcctInfo: []ofxgo.AcctInfo{{
|
AcctInfo: []AcctInfo{{
|
||||||
Desc: "Personal Checking",
|
Desc: "Personal Checking",
|
||||||
Phone: "888-222-5827",
|
Phone: "888-222-5827",
|
||||||
BankAcctInfo: &bankacctinfo,
|
BankAcctInfo: &bankacctinfo,
|
||||||
@ -149,7 +148,7 @@ func TestUnmarshalAcctInfoResponse(t *testing.T) {
|
|||||||
}
|
}
|
||||||
expected.Signup = append(expected.Signup, &acctInfoResponse)
|
expected.Signup = append(expected.Signup, &acctInfoResponse)
|
||||||
|
|
||||||
response, err := ofxgo.ParseResponse(responseReader)
|
response, err := ParseResponse(responseReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
t.Fatalf("Unexpected error unmarshalling response: %s\n", err)
|
||||||
}
|
}
|
||||||
|
143
types_test.go
143
types_test.go
@ -1,8 +1,7 @@
|
|||||||
package ofxgo_test
|
package ofxgo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/aclindsa/ofxgo"
|
|
||||||
"github.com/aclindsa/xml"
|
"github.com/aclindsa/xml"
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
@ -57,7 +56,7 @@ func unmarshalHelper(t *testing.T, input string, expected interface{}, overwritt
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalInt(t *testing.T) {
|
func TestMarshalInt(t *testing.T) {
|
||||||
var i ofxgo.Int = 927
|
var i Int = 927
|
||||||
marshalHelper(t, "927", &i)
|
marshalHelper(t, "927", &i)
|
||||||
i = 0
|
i = 0
|
||||||
marshalHelper(t, "0", &i)
|
marshalHelper(t, "0", &i)
|
||||||
@ -66,7 +65,7 @@ func TestMarshalInt(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalInt(t *testing.T) {
|
func TestUnmarshalInt(t *testing.T) {
|
||||||
var i, overwritten ofxgo.Int = -48394, 0
|
var i, overwritten Int = -48394, 0
|
||||||
unmarshalHelper(t, "-48394", &i, &overwritten)
|
unmarshalHelper(t, "-48394", &i, &overwritten)
|
||||||
i = 0
|
i = 0
|
||||||
unmarshalHelper(t, "0", &i, &overwritten)
|
unmarshalHelper(t, "0", &i, &overwritten)
|
||||||
@ -78,7 +77,7 @@ func TestUnmarshalInt(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalAmount(t *testing.T) {
|
func TestMarshalAmount(t *testing.T) {
|
||||||
var a ofxgo.Amount
|
var a Amount
|
||||||
|
|
||||||
a.SetFrac64(8, 1)
|
a.SetFrac64(8, 1)
|
||||||
marshalHelper(t, "8", &a)
|
marshalHelper(t, "8", &a)
|
||||||
@ -95,13 +94,13 @@ func TestMarshalAmount(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalAmount(t *testing.T) {
|
func TestUnmarshalAmount(t *testing.T) {
|
||||||
var a, overwritten ofxgo.Amount
|
var a, overwritten Amount
|
||||||
|
|
||||||
// Amount/big.Rat needs a special equality test because reflect.DeepEqual
|
// Amount/big.Rat needs a special equality test because reflect.DeepEqual
|
||||||
// doesn't always return equal for two values that big.Rat.Cmp() does
|
// doesn't always return equal for two values that big.Rat.Cmp() does
|
||||||
eq := func(a, b interface{}) bool {
|
eq := func(a, b interface{}) bool {
|
||||||
if amountA, ok := a.(*ofxgo.Amount); ok {
|
if amountA, ok := a.(*Amount); ok {
|
||||||
if amountB, ok2 := b.(*ofxgo.Amount); ok2 {
|
if amountB, ok2 := b.(*Amount); ok2 {
|
||||||
return amountA.Cmp(&amountB.Rat) == 0
|
return amountA.Cmp(&amountB.Rat) == 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,18 +126,18 @@ func TestUnmarshalAmount(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAmountEqual(t *testing.T) {
|
func TestAmountEqual(t *testing.T) {
|
||||||
assertEq := func(a, b ofxgo.Amount) {
|
assertEq := func(a, b Amount) {
|
||||||
if !a.Equal(b) {
|
if !a.Equal(b) {
|
||||||
t.Fatalf("Amounts should be equal but Equal returned false: %s and %s\n", a, b)
|
t.Fatalf("Amounts should be equal but Equal returned false: %s and %s\n", a, b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assertNEq := func(a, b ofxgo.Amount) {
|
assertNEq := func(a, b Amount) {
|
||||||
if a.Equal(b) {
|
if a.Equal(b) {
|
||||||
t.Fatalf("Amounts should not be equal but Equal returned true: %s and %s\n", a, b)
|
t.Fatalf("Amounts should not be equal but Equal returned true: %s and %s\n", a, b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var a, b ofxgo.Amount
|
var a, b Amount
|
||||||
a.SetInt64(-19487135)
|
a.SetInt64(-19487135)
|
||||||
b.SetInt64(-19487135)
|
b.SetInt64(-19487135)
|
||||||
assertEq(a, b)
|
assertEq(a, b)
|
||||||
@ -154,7 +153,7 @@ func TestAmountEqual(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalDate(t *testing.T) {
|
func TestMarshalDate(t *testing.T) {
|
||||||
var d *ofxgo.Date
|
var d *Date
|
||||||
UTC := time.FixedZone("UTC", 0)
|
UTC := time.FixedZone("UTC", 0)
|
||||||
GMT_nodesc := time.FixedZone("", 0)
|
GMT_nodesc := time.FixedZone("", 0)
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
@ -162,35 +161,35 @@ func TestMarshalDate(t *testing.T) {
|
|||||||
IST := time.FixedZone("IST", (5*60+30)*60)
|
IST := time.FixedZone("IST", (5*60+30)*60)
|
||||||
NST := time.FixedZone("NST", -(3*60+30)*60)
|
NST := time.FixedZone("NST", -(3*60+30)*60)
|
||||||
|
|
||||||
d = ofxgo.NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
d = NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
||||||
marshalHelper(t, "20170314150926.053[0:GMT]", d)
|
marshalHelper(t, "20170314150926.053[0:GMT]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, NPT)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, NPT)
|
||||||
marshalHelper(t, "20170314150926.053[5.75:NPT]", d)
|
marshalHelper(t, "20170314150926.053[5.75:NPT]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
||||||
marshalHelper(t, "20170314150926.053[-5:EST]", d)
|
marshalHelper(t, "20170314150926.053[-5:EST]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, UTC)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, UTC)
|
||||||
marshalHelper(t, "20170314150926.053[0:UTC]", d)
|
marshalHelper(t, "20170314150926.053[0:UTC]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, IST)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, IST)
|
||||||
marshalHelper(t, "20170314150926.053[5.50:IST]", d)
|
marshalHelper(t, "20170314150926.053[5.50:IST]", d)
|
||||||
d = ofxgo.NewDate(9999, 11, 1, 23, 59, 59, 1000, EST)
|
d = NewDate(9999, 11, 1, 23, 59, 59, 1000, EST)
|
||||||
marshalHelper(t, "99991101235959.000[-5:EST]", d)
|
marshalHelper(t, "99991101235959.000[-5:EST]", d)
|
||||||
d = ofxgo.NewDate(0, 1, 1, 0, 0, 0, 0, IST)
|
d = NewDate(0, 1, 1, 0, 0, 0, 0, IST)
|
||||||
marshalHelper(t, "00000101000000.000[5.50:IST]", d)
|
marshalHelper(t, "00000101000000.000[5.50:IST]", d)
|
||||||
d = &ofxgo.Date{Time: time.Unix(0, 0).In(UTC)}
|
d = &Date{Time: time.Unix(0, 0).In(UTC)}
|
||||||
marshalHelper(t, "19700101000000.000[0:UTC]", d)
|
marshalHelper(t, "19700101000000.000[0:UTC]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, EST)
|
d = NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, EST)
|
||||||
marshalHelper(t, "20170314000026.053[-5:EST]", d)
|
marshalHelper(t, "20170314000026.053[-5:EST]", d)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST)
|
d = NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST)
|
||||||
marshalHelper(t, "20170314000026.053[-3.50:NST]", d)
|
marshalHelper(t, "20170314000026.053[-3.50:NST]", d)
|
||||||
|
|
||||||
// Time zone without textual description
|
// Time zone without textual description
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT_nodesc)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT_nodesc)
|
||||||
marshalHelper(t, "20170314150926.053[0]", d)
|
marshalHelper(t, "20170314150926.053[0]", d)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalDate(t *testing.T) {
|
func TestUnmarshalDate(t *testing.T) {
|
||||||
var d *ofxgo.Date
|
var d *Date
|
||||||
var overwritten ofxgo.Date
|
var overwritten Date
|
||||||
GMT := time.FixedZone("GMT", 0)
|
GMT := time.FixedZone("GMT", 0)
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
NPT := time.FixedZone("NPT", (5*60+45)*60)
|
NPT := time.FixedZone("NPT", (5*60+45)*60)
|
||||||
@ -199,8 +198,8 @@ func TestUnmarshalDate(t *testing.T) {
|
|||||||
NST_nodesc := time.FixedZone("", -(3*60+30)*60)
|
NST_nodesc := time.FixedZone("", -(3*60+30)*60)
|
||||||
|
|
||||||
eq := func(a, b interface{}) bool {
|
eq := func(a, b interface{}) bool {
|
||||||
if dateA, ok := a.(*ofxgo.Date); ok {
|
if dateA, ok := a.(*Date); ok {
|
||||||
if dateB, ok2 := b.(*ofxgo.Date); ok2 {
|
if dateB, ok2 := b.(*Date); ok2 {
|
||||||
return dateA.Equal(*dateB)
|
return dateA.Equal(*dateB)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -208,14 +207,14 @@ func TestUnmarshalDate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ensure omitted fields default to the correct values
|
// Ensure omitted fields default to the correct values
|
||||||
d = ofxgo.NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
d = NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
||||||
unmarshalHelper2(t, "20170314150926.053[0]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[0]", d, &overwritten, eq)
|
||||||
unmarshalHelper2(t, "20170314150926.053", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 0, 0, GMT)
|
d = NewDate(2017, 3, 14, 0, 0, 0, 0, GMT)
|
||||||
unmarshalHelper2(t, "20170314", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314", d, &overwritten, eq)
|
||||||
|
|
||||||
// Ensure all signs on time zone offsets are properly handled
|
// Ensure all signs on time zone offsets are properly handled
|
||||||
d = ofxgo.NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
d = NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
||||||
unmarshalHelper2(t, "20170314150926.053[0:GMT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[0:GMT]", d, &overwritten, eq)
|
||||||
unmarshalHelper2(t, "20170314150926.053[+0:GMT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[+0:GMT]", d, &overwritten, eq)
|
||||||
unmarshalHelper2(t, "20170314150926.053[-0:GMT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[-0:GMT]", d, &overwritten, eq)
|
||||||
@ -223,38 +222,38 @@ func TestUnmarshalDate(t *testing.T) {
|
|||||||
unmarshalHelper2(t, "20170314150926.053[+0]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[+0]", d, &overwritten, eq)
|
||||||
unmarshalHelper2(t, "20170314150926.053[-0]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[-0]", d, &overwritten, eq)
|
||||||
|
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, NPT)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, NPT)
|
||||||
unmarshalHelper2(t, "20170314150926.053[5.75:NPT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[5.75:NPT]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
||||||
unmarshalHelper2(t, "20170314150926.053[-5:EST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[-5:EST]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
||||||
unmarshalHelper2(t, "20170314150926.053[0:GMT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[0:GMT]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, IST)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, IST)
|
||||||
unmarshalHelper2(t, "20170314150926.053[5.50:IST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[5.50:IST]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2018, 11, 1, 23, 59, 58, 0, EST)
|
d = NewDate(2018, 11, 1, 23, 59, 58, 0, EST)
|
||||||
unmarshalHelper2(t, "20181101235958.000[-5:EST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20181101235958.000[-5:EST]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(0, 1, 1, 0, 0, 0, 0, IST)
|
d = NewDate(0, 1, 1, 0, 0, 0, 0, IST)
|
||||||
unmarshalHelper2(t, "00000101000000.000[5.50:IST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "00000101000000.000[5.50:IST]", d, &overwritten, eq)
|
||||||
d = &ofxgo.Date{Time: time.Unix(0, 0).In(GMT)}
|
d = &Date{Time: time.Unix(0, 0).In(GMT)}
|
||||||
unmarshalHelper2(t, "19700101000000.000[0:GMT]", d, &overwritten, eq)
|
unmarshalHelper2(t, "19700101000000.000[0:GMT]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, EST)
|
d = NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, EST)
|
||||||
unmarshalHelper2(t, "20170314000026.053[-5:EST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314000026.053[-5:EST]", d, &overwritten, eq)
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST)
|
d = NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST)
|
||||||
unmarshalHelper2(t, "20170314000026.053[-3.50:NST]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314000026.053[-3.50:NST]", d, &overwritten, eq)
|
||||||
|
|
||||||
// Autopopulate zone without textual description for GMT
|
// Autopopulate zone without textual description for GMT
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
d = NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
||||||
unmarshalHelper2(t, "20170314150926.053[0]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314150926.053[0]", d, &overwritten, eq)
|
||||||
// but not for others:
|
// but not for others:
|
||||||
d = ofxgo.NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST_nodesc)
|
d = NewDate(2017, 3, 14, 0, 0, 26, 53*1000*1000, NST_nodesc)
|
||||||
unmarshalHelper2(t, "20170314000026.053[-3.50]", d, &overwritten, eq)
|
unmarshalHelper2(t, "20170314000026.053[-3.50]", d, &overwritten, eq)
|
||||||
|
|
||||||
// Make sure we handle poorly-formatted dates (from Vanguard)
|
// Make sure we handle poorly-formatted dates (from Vanguard)
|
||||||
d = ofxgo.NewDate(2016, 12, 7, 16, 0, 0, 0, EST)
|
d = NewDate(2016, 12, 7, 16, 0, 0, 0, EST)
|
||||||
unmarshalHelper2(t, "20161207160000.000[-5:EST]610900.500[-9:BST]", d, &overwritten, eq) // extra part intentionally different to ensure the first timezone is parsed
|
unmarshalHelper2(t, "20161207160000.000[-5:EST]610900.500[-9:BST]", d, &overwritten, eq) // extra part intentionally different to ensure the first timezone is parsed
|
||||||
|
|
||||||
// Make sure we properly handle ending newlines
|
// Make sure we properly handle ending newlines
|
||||||
d = ofxgo.NewDate(2018, 11, 1, 23, 59, 58, 0, EST)
|
d = NewDate(2018, 11, 1, 23, 59, 58, 0, EST)
|
||||||
unmarshalHelper2(t, "20181101235958.000[-5:EST]\n", d, &overwritten, eq)
|
unmarshalHelper2(t, "20181101235958.000[-5:EST]\n", d, &overwritten, eq)
|
||||||
unmarshalHelper2(t, "20181101235958.000[-5:EST]\n\t", d, &overwritten, eq)
|
unmarshalHelper2(t, "20181101235958.000[-5:EST]\n\t", d, &overwritten, eq)
|
||||||
}
|
}
|
||||||
@ -263,23 +262,23 @@ func TestDateEqual(t *testing.T) {
|
|||||||
GMT := time.FixedZone("GMT", 0)
|
GMT := time.FixedZone("GMT", 0)
|
||||||
EST := time.FixedZone("EST", -5*60*60)
|
EST := time.FixedZone("EST", -5*60*60)
|
||||||
|
|
||||||
assertEq := func(a, b *ofxgo.Date) {
|
assertEq := func(a, b *Date) {
|
||||||
if !a.Equal(*b) {
|
if !a.Equal(*b) {
|
||||||
t.Fatalf("Dates should be equal but Equal returned false: %s and %s\n", *a, *b)
|
t.Fatalf("Dates should be equal but Equal returned false: %s and %s\n", *a, *b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assertNEq := func(a, b *ofxgo.Date) {
|
assertNEq := func(a, b *Date) {
|
||||||
if a.Equal(*b) {
|
if a.Equal(*b) {
|
||||||
t.Fatalf("Dates should not be equal but Equal returned true: %s and %s\n", *a, *b)
|
t.Fatalf("Dates should not be equal but Equal returned true: %s and %s\n", *a, *b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure omitted fields default to the correct values
|
// Ensure omitted fields default to the correct values
|
||||||
gmt1 := ofxgo.NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
gmt1 := NewDateGMT(2017, 3, 14, 15, 9, 26, 53*1000*1000)
|
||||||
gmt2 := ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
gmt2 := NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, GMT)
|
||||||
est1 := ofxgo.NewDate(2017, 3, 14, 10, 9, 26, 53*1000*1000, EST)
|
est1 := NewDate(2017, 3, 14, 10, 9, 26, 53*1000*1000, EST)
|
||||||
est2 := ofxgo.NewDate(2017, 3, 14, 10, 9, 26, 53*1000*1000+1, EST)
|
est2 := NewDate(2017, 3, 14, 10, 9, 26, 53*1000*1000+1, EST)
|
||||||
est3 := ofxgo.NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
est3 := NewDate(2017, 3, 14, 15, 9, 26, 53*1000*1000, EST)
|
||||||
|
|
||||||
assertEq(gmt1, gmt2)
|
assertEq(gmt1, gmt2)
|
||||||
assertEq(gmt2, gmt1)
|
assertEq(gmt2, gmt1)
|
||||||
@ -291,7 +290,7 @@ func TestDateEqual(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalString(t *testing.T) {
|
func TestMarshalString(t *testing.T) {
|
||||||
var s ofxgo.String = ""
|
var s String = ""
|
||||||
marshalHelper(t, "", &s)
|
marshalHelper(t, "", &s)
|
||||||
s = "foo&bar"
|
s = "foo&bar"
|
||||||
marshalHelper(t, "foo&bar", &s)
|
marshalHelper(t, "foo&bar", &s)
|
||||||
@ -302,7 +301,7 @@ func TestMarshalString(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalString(t *testing.T) {
|
func TestUnmarshalString(t *testing.T) {
|
||||||
var s, overwritten ofxgo.String = "", ""
|
var s, overwritten String = "", ""
|
||||||
unmarshalHelper(t, "", &s, &overwritten)
|
unmarshalHelper(t, "", &s, &overwritten)
|
||||||
s = "foo&bar"
|
s = "foo&bar"
|
||||||
unmarshalHelper(t, "foo&bar", &s, &overwritten)
|
unmarshalHelper(t, "foo&bar", &s, &overwritten)
|
||||||
@ -318,14 +317,14 @@ func TestUnmarshalString(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalBoolean(t *testing.T) {
|
func TestMarshalBoolean(t *testing.T) {
|
||||||
var b ofxgo.Boolean = true
|
var b Boolean = true
|
||||||
marshalHelper(t, "Y", &b)
|
marshalHelper(t, "Y", &b)
|
||||||
b = false
|
b = false
|
||||||
marshalHelper(t, "N", &b)
|
marshalHelper(t, "N", &b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalBoolean(t *testing.T) {
|
func TestUnmarshalBoolean(t *testing.T) {
|
||||||
var b, overwritten ofxgo.Boolean = true, false
|
var b, overwritten Boolean = true, false
|
||||||
unmarshalHelper(t, "Y", &b, &overwritten)
|
unmarshalHelper(t, "Y", &b, &overwritten)
|
||||||
b = false
|
b = false
|
||||||
unmarshalHelper(t, "N", &b, &overwritten)
|
unmarshalHelper(t, "N", &b, &overwritten)
|
||||||
@ -335,12 +334,12 @@ func TestUnmarshalBoolean(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalUID(t *testing.T) {
|
func TestMarshalUID(t *testing.T) {
|
||||||
var u ofxgo.UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04"
|
var u UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04"
|
||||||
marshalHelper(t, "d1cf3d3d-9ef9-4a97-b180-81706829cb04", &u)
|
marshalHelper(t, "d1cf3d3d-9ef9-4a97-b180-81706829cb04", &u)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalUID(t *testing.T) {
|
func TestUnmarshalUID(t *testing.T) {
|
||||||
var u, overwritten ofxgo.UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04", ""
|
var u, overwritten UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04", ""
|
||||||
unmarshalHelper(t, "d1cf3d3d-9ef9-4a97-b180-81706829cb04", &u, &overwritten)
|
unmarshalHelper(t, "d1cf3d3d-9ef9-4a97-b180-81706829cb04", &u, &overwritten)
|
||||||
// Make sure stray newlines are handled properly
|
// Make sure stray newlines are handled properly
|
||||||
u = "0f94ce83-13b7-7568-e4fc-c02c7b47e7ab"
|
u = "0f94ce83-13b7-7568-e4fc-c02c7b47e7ab"
|
||||||
@ -349,7 +348,7 @@ func TestUnmarshalUID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUIDRecommendedFormat(t *testing.T) {
|
func TestUIDRecommendedFormat(t *testing.T) {
|
||||||
var u ofxgo.UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04"
|
var u UID = "d1cf3d3d-9ef9-4a97-b180-81706829cb04"
|
||||||
if ok, err := u.RecommendedFormat(); !ok || err != nil {
|
if ok, err := u.RecommendedFormat(); !ok || err != nil {
|
||||||
t.Fatalf("UID unexpectedly failed validation\n")
|
t.Fatalf("UID unexpectedly failed validation\n")
|
||||||
}
|
}
|
||||||
@ -368,7 +367,7 @@ func TestUIDRecommendedFormat(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUIDValid(t *testing.T) {
|
func TestUIDValid(t *testing.T) {
|
||||||
var u ofxgo.UID = ""
|
var u UID = ""
|
||||||
if ok, err := u.Valid(); ok || err == nil {
|
if ok, err := u.Valid(); ok || err == nil {
|
||||||
t.Fatalf("Empty UID unexpectedly valid\n")
|
t.Fatalf("Empty UID unexpectedly valid\n")
|
||||||
}
|
}
|
||||||
@ -383,7 +382,7 @@ func TestUIDValid(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRandomUID(t *testing.T) {
|
func TestRandomUID(t *testing.T) {
|
||||||
uid, err := ofxgo.RandomUID()
|
uid, err := RandomUID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error when calling RandomUID: %s\n", err)
|
t.Fatalf("Unexpected error when calling RandomUID: %s\n", err)
|
||||||
}
|
}
|
||||||
@ -393,46 +392,46 @@ func TestRandomUID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMarshalCurrSymbol(t *testing.T) {
|
func TestMarshalCurrSymbol(t *testing.T) {
|
||||||
c, _ := ofxgo.NewCurrSymbol("USD")
|
c, _ := NewCurrSymbol("USD")
|
||||||
marshalHelper(t, "USD", &c)
|
marshalHelper(t, "USD", &c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUnmarshalCurrSymbol(t *testing.T) {
|
func TestUnmarshalCurrSymbol(t *testing.T) {
|
||||||
var overwritten ofxgo.CurrSymbol
|
var overwritten CurrSymbol
|
||||||
c, _ := ofxgo.NewCurrSymbol("USD")
|
c, _ := NewCurrSymbol("USD")
|
||||||
unmarshalHelper(t, "USD", c, &overwritten)
|
unmarshalHelper(t, "USD", c, &overwritten)
|
||||||
// Make sure stray newlines are handled properly
|
// Make sure stray newlines are handled properly
|
||||||
c, _ = ofxgo.NewCurrSymbol("EUR")
|
c, _ = NewCurrSymbol("EUR")
|
||||||
unmarshalHelper(t, "EUR\n", c, &overwritten)
|
unmarshalHelper(t, "EUR\n", c, &overwritten)
|
||||||
unmarshalHelper(t, "EUR\n\t", c, &overwritten)
|
unmarshalHelper(t, "EUR\n\t", c, &overwritten)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCurrSymbolEqual(t *testing.T) {
|
func TestCurrSymbolEqual(t *testing.T) {
|
||||||
usd1, _ := ofxgo.NewCurrSymbol("USD")
|
usd1, _ := NewCurrSymbol("USD")
|
||||||
usd2, _ := ofxgo.NewCurrSymbol("USD")
|
usd2, _ := NewCurrSymbol("USD")
|
||||||
if !usd1.Equal(*usd2) {
|
if !usd1.Equal(*usd2) {
|
||||||
t.Fatalf("Two \"USD\" CurrSymbols returned !Equal()\n")
|
t.Fatalf("Two \"USD\" CurrSymbols returned !Equal()\n")
|
||||||
}
|
}
|
||||||
xxx, _ := ofxgo.NewCurrSymbol("XXX")
|
xxx, _ := NewCurrSymbol("XXX")
|
||||||
if usd1.Equal(*xxx) {
|
if usd1.Equal(*xxx) {
|
||||||
t.Fatalf("\"USD\" and \"XXX\" CurrSymbols returned Equal()\n")
|
t.Fatalf("\"USD\" and \"XXX\" CurrSymbols returned Equal()\n")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCurrSymbolValid(t *testing.T) {
|
func TestCurrSymbolValid(t *testing.T) {
|
||||||
var initial ofxgo.CurrSymbol
|
var initial CurrSymbol
|
||||||
ok, err := initial.Valid()
|
ok, err := initial.Valid()
|
||||||
if ok || err == nil {
|
if ok || err == nil {
|
||||||
t.Fatalf("CurrSymbol unexpectedly returned Valid() for initial value\n")
|
t.Fatalf("CurrSymbol unexpectedly returned Valid() for initial value\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
ars, _ := ofxgo.NewCurrSymbol("ARS")
|
ars, _ := NewCurrSymbol("ARS")
|
||||||
ok, err = ars.Valid()
|
ok, err = ars.Valid()
|
||||||
if !ok || err != nil {
|
if !ok || err != nil {
|
||||||
t.Fatalf("CurrSymbol unexpectedly returned !Valid() for \"ARS\": %s\n", err.Error())
|
t.Fatalf("CurrSymbol unexpectedly returned !Valid() for \"ARS\": %s\n", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
xxx, _ := ofxgo.NewCurrSymbol("XXX")
|
xxx, _ := NewCurrSymbol("XXX")
|
||||||
ok, err = xxx.Valid()
|
ok, err = xxx.Valid()
|
||||||
if ok || err == nil {
|
if ok || err == nil {
|
||||||
t.Fatalf("CurrSymbol unexpectedly returned Valid() for \"XXX\"\n")
|
t.Fatalf("CurrSymbol unexpectedly returned Valid() for \"XXX\"\n")
|
||||||
@ -440,21 +439,21 @@ func TestCurrSymbolValid(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestNewCurrSymbol(t *testing.T) {
|
func TestNewCurrSymbol(t *testing.T) {
|
||||||
curr, err := ofxgo.NewCurrSymbol("GBP")
|
curr, err := NewCurrSymbol("GBP")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error calling NewCurrSymbol: %s\n", err)
|
t.Fatalf("Unexpected error calling NewCurrSymbol: %s\n", err)
|
||||||
}
|
}
|
||||||
if curr.String() != "GBP" {
|
if curr.String() != "GBP" {
|
||||||
t.Fatalf("Created CurrSymbol doesn't print \"GBP\" as string representation\n")
|
t.Fatalf("Created CurrSymbol doesn't print \"GBP\" as string representation\n")
|
||||||
}
|
}
|
||||||
curr, err = ofxgo.NewCurrSymbol("AFN")
|
curr, err = NewCurrSymbol("AFN")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Unexpected error calling NewCurrSymbol: %s\n", err)
|
t.Fatalf("Unexpected error calling NewCurrSymbol: %s\n", err)
|
||||||
}
|
}
|
||||||
if curr.String() != "AFN" {
|
if curr.String() != "AFN" {
|
||||||
t.Fatalf("Created CurrSymbol doesn't print \"AFN\" as string representation\n")
|
t.Fatalf("Created CurrSymbol doesn't print \"AFN\" as string representation\n")
|
||||||
}
|
}
|
||||||
curr, err = ofxgo.NewCurrSymbol("BLAH")
|
curr, err = NewCurrSymbol("BLAH")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("NewCurrSymbol didn't error on invalid currency identifier\n")
|
t.Fatalf("NewCurrSymbol didn't error on invalid currency identifier\n")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user