Skip to content

Commit 286dac5

Browse files
author
Dan Tolbert
committed
removeImportedTnOrder tests & code
1 parent 0e280bd commit 286dac5

File tree

3 files changed

+75
-106
lines changed

3 files changed

+75
-106
lines changed

lib/removeImportedTnOrder.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ var fs = require("fs");
22
var Client = require("./client");
33
var REMOVE_IMPORTED_TN_ORDERS_PATH = "removeImportedTnOrders";
44

5-
function Disconnect(){
5+
function RemoveImportedTnOrder(){
66
}
77

8-
Disconnect.create = function (client, customerOrderId, numbers, callback){
8+
RemoveImportedTnOrder.create = function (client, customerOrderId, numbers, callback){
99
if(arguments.length === 3){
1010
callback = numbers;
1111
numbers = customerOrderId;
@@ -16,16 +16,26 @@ Disconnect.create = function (client, customerOrderId, numbers, callback){
1616
removeImportedTnOrder:{
1717
customerOrderId: customerOrderId,
1818
_nameXmlElement: "CustomerOrderId",
19-
telephoneNumberList:
19+
telephoneNumbers:
2020
numbers.map(function(number) {
2121
return {telephoneNumber: number};
2222
})
2323
}
2424
};
25-
client.makeRequest("post", client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH), data, callback);
25+
client.makeRequest("post", client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH), data, function(err, item){
26+
if(err){
27+
return callback(err);
28+
}
29+
// ImportTnResponse Wraps importTn
30+
var response = item.removeImportedTnOrder;
31+
response.client = client;
32+
response.id = response.orderId;
33+
response.__proto__ = RemoveImportedTnOrder.prototype;
34+
callback(null, response);
35+
});
2636
};
2737

28-
Disconnect.list = function (client, query, callback) {
38+
RemoveImportedTnOrder.list = function (client, query, callback) {
2939
if(arguments.length === 2){
3040
callback = query;
3141
query = client;
@@ -39,7 +49,7 @@ Disconnect.list = function (client, query, callback) {
3949
});
4050
};
4151

42-
Disconnect.get = function(client, id, query, callback){
52+
RemoveImportedTnOrder.get = function(client, id, query, callback){
4353
if(arguments.length === 3){
4454
callback = query;
4555
query = id;
@@ -55,7 +65,7 @@ Disconnect.get = function(client, id, query, callback){
5565

5666
}
5767

58-
Disconnect.prototype.getHistory = function (callback) {
68+
RemoveImportedTnOrder.prototype.getHistory = function (callback) {
5969
this.client.makeRequest("get", this.client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH) + "/" + this.id + "/history", function (err, history) {
6070
if (err) {
6171
return callback(err);
@@ -65,4 +75,4 @@ Disconnect.prototype.getHistory = function (callback) {
6575
});
6676
};
6777

68-
module.exports = Disconnect;
78+
module.exports = RemoveImportedTnOrder;

test/removeImportedTnOrder.js

Lines changed: 52 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
var lib = require("../");
22
var helper = require("./helper");
33
var nock = require("nock");
4-
var Disconnect = lib.Disconnect;
4+
var RemoveImportedTnOrder = lib.RemoveImportedTnOrder;
55

6-
describe("Disconnect", function(){
6+
describe("RemoveImportedTnOrder", function(){
77
before(function(){
88
nock.disableNetConnect();
99
helper.setupGlobalOptions();
@@ -14,131 +14,86 @@ describe("Disconnect", function(){
1414
});
1515
describe("#list", function(){
1616
it("should return list of orders", function(done){
17-
helper.nock().get("/accounts/FakeAccountId/disconnects").reply(200, helper.xml.order, {"Content-Type": "application/xml"});
17+
helper.nock().get("/accounts/FakeAccountId/removeImportedTnOrders").reply(200, helper.xml.removeImportedTnOrderList, {"Content-Type": "application/xml"});
1818
var client = helper.createClient();
19-
Disconnect.list(client, {}, done);
20-
});
21-
it("should return list of orders (with default client)", function(done){
22-
helper.nock().get("/accounts/FakeAccountId/disconnects").reply(200, helper.xml.order, {"Content-Type": "application/xml"});
23-
Disconnect.list({}, done);
24-
});
25-
});
26-
describe("#getNotes", function(){
27-
it("should return notes", function(done){
28-
helper.nock().get("/accounts/FakeAccountId/disconnects/1/notes").reply(200, helper.xml.notes, {"Content-Type": "application/xml"});
29-
var order = new Disconnect();
30-
order.id = 1;
31-
order.client = helper.createClient();
32-
order.getNotes(function(err, notes){
19+
RemoveImportedTnOrder.list(client, {}, (err, items) => {
3320
if(err){
3421
return done(err);
3522
}
36-
notes.length.should.equal(2);
37-
notes[0].id.should.equal(11299);
38-
notes[0].userId.should.equal("customer");
39-
notes[0].description.should.equal("Test");
23+
items.totalCount.should.eql(2);
24+
items.removeImportedTnOrderSummary.length.should.eql(2);
4025
done();
4126
});
4227
});
43-
it("should fail for error status code", function(done){
44-
helper.nock().get("/accounts/FakeAccountId/disconnects/1/notes").reply(400);
45-
var order = new Disconnect();
46-
order.id = 1;
47-
order.client = helper.createClient();
48-
order.getNotes(function(err, notes){
28+
it("should return list of orders (with default client)", function(done){
29+
helper.nock().get("/accounts/FakeAccountId/removeImportedTnOrders").reply(200, helper.xml.removeImportedTnOrderList, {"Content-Type": "application/xml"});
30+
RemoveImportedTnOrder.list({}, (err, items) => {
4931
if(err){
50-
return done();
32+
return done(err);
5133
}
52-
done(new Error("An error is estimated"));
53-
});
34+
items.totalCount.should.eql(2);
35+
items.removeImportedTnOrderSummary.length.should.eql(2);
36+
done();
5437
});
5538
});
56-
describe("#addNote", function(){
57-
it("should add new note", function(done){
58-
var data = {userId: "customer", description: "Test"};
59-
helper.nock().post("/accounts/FakeAccountId/disconnects/1/notes", helper.buildXml({note: data})).reply(200, "", {"Location": "/accounts/FakeAccountId/portins/1/notes/11299"});
60-
helper.nock().get("/accounts/FakeAccountId/disconnects/1/notes").reply(200, helper.xml.notes, {"Content-Type": "application/xml"});
61-
var order = new Disconnect();
39+
describe("#getHistory", () => {
40+
it("should fetch history of a removeImportedTnOrder", (done) => {
41+
helper.nock().get("/accounts/FakeAccountId/removeImportedTnOrders/1/history").reply(200, helper.xml.removeImportedTnOrderHistory, {"Content-Type": "application/xml"});
42+
var order = new RemoveImportedTnOrder();
6243
order.id = 1;
6344
order.client = helper.createClient();
64-
order.addNote(data, function(err, note){
45+
order.getHistory(function(err, history){
6546
if(err){
6647
return done(err);
6748
}
68-
note.id.should.equal(11299);
69-
note.userId.should.equal("customer");
70-
note.description.should.equal("Test");
49+
history.length.should.eql(4);
7150
done();
7251
});
7352
});
74-
it("should fail on loading notes error", function(done){
75-
var data = {userId: "customer", description: "Test"};
76-
helper.nock().post("/accounts/FakeAccountId/disconnects/1/notes", helper.buildXml({note: data})).reply(200, "", {"Location": "/accounts/FakeAccountId/portins/1/notes/11299"});
77-
helper.nock().get("/accounts/FakeAccountId/disconnects/1/notes").reply(500);
78-
var order = new Disconnect();
79-
order.id = 1;
80-
order.client = helper.createClient();
81-
order.addNote(data, function(err, note){
82-
if(err){
83-
return done();
84-
}
85-
done(new Error("An error is estimated"));
86-
});
87-
});
88-
it("should fail if location header is missing", function(done){
89-
var data = {userId: "customer", description: "Test"};
90-
helper.nock().post("/accounts/FakeAccountId/disconnects/1/notes", helper.buildXml({note: data})).reply(400);
91-
var order = new Disconnect();
92-
order.id = 1;
93-
order.client = helper.createClient();
94-
debugger;
95-
order.addNote(data, function(err, note){
96-
if(err){
97-
return done();
98-
}
99-
done(new Error("An error is estimated"));
100-
});
101-
});
102-
it("should fail on error status code", function(done){
103-
var data = {userId: "customer", description: "Test"};
104-
helper.nock().post("/accounts/FakeAccountId/disconnects/1/notes", helper.buildXml({note: data})).reply(400);
105-
var order = new Disconnect();
106-
order.id = 1;
107-
order.client = helper.createClient();
108-
order.addNote(data, function(err, note){
109-
if(err){
110-
return done();
111-
}
112-
done(new Error("An error is estimated"));
113-
});
114-
});
11553
});
11654
describe("#disconnectNumbers", function(){
11755
it("should disconnect numbers", function(done){
56+
var numbers = ["9199918388", "4158714245", "4352154439", "4352154466"]
11857
var data = {
119-
disconnectTelephoneNumberOrder: {
120-
name: "test",
121-
_nameXmlElement: "name",
122-
disconnectTelephoneNumberOrderType: {
123-
telephoneNumberList: [{telephoneNumber: "111"}, {telephoneNumber: "222"}]
124-
}
58+
removeImportedTnOrder:{
59+
customerOrderId: "test",
60+
_nameXmlElement: "CustomerOrderId",
61+
telephoneNumbers:
62+
numbers.map(function(number) {
63+
return {telephoneNumber: number};
64+
})
12565
}
12666
};
127-
helper.nock().post("/accounts/FakeAccountId/disconnects", helper.buildXml(data)).reply(200);
128-
Disconnect.create(helper.createClient(), "test", ["111", "222"], done);
67+
helper.nock().post("/accounts/FakeAccountId/removeImportedTnOrders", helper.buildXml(data)).reply(200, helper.xml.removeImportedTnOrderResponse, {"Content-Type": "application/xml"});
68+
RemoveImportedTnOrder.create(helper.createClient(), "test", numbers, (err, item) => {
69+
if(err){
70+
return done(err);
71+
}
72+
item.id.should.eql("7527b3fc-3f72-4d0a-acae-ccc7e77857ed");
73+
done();
74+
});
12975
});
13076
it("should disconnect numbers (with default client)", function(done){
77+
var numbers = ["9199918388", "4158714245", "4352154439", "4352154466"]
13178
var data = {
132-
disconnectTelephoneNumberOrder: {
133-
name: "test",
134-
_nameXmlElement: "name",
135-
disconnectTelephoneNumberOrderType: {
136-
telephoneNumberList: [{telephoneNumber: "111"}, {telephoneNumber: "222"}]
137-
}
79+
removeImportedTnOrder:{
80+
customerOrderId: "test",
81+
_nameXmlElement: "CustomerOrderId",
82+
telephoneNumbers:
83+
numbers.map(function(number) {
84+
return {telephoneNumber: number};
85+
})
13886
}
13987
};
140-
helper.nock().post("/accounts/FakeAccountId/disconnects", helper.buildXml(data)).reply(200);
141-
Disconnect.create("test", ["111", "222"], done);
88+
helper.nock().post("/accounts/FakeAccountId/removeImportedTnOrders", helper.buildXml(data)).reply(200, helper.xml.removeImportedTnOrderResponse, {"Content-Type": "application/xml"});
89+
RemoveImportedTnOrder.create(helper.createClient(), "test", numbers, (err, item) => {
90+
if(err){
91+
return done(err);
92+
}
93+
item.id.should.eql("7527b3fc-3f72-4d0a-acae-ccc7e77857ed");
94+
done();
95+
});
14296
});
14397
});
14498
});
99+
});

test/xml.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,9 @@
4949
"importTnOrder": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><ImportTnOrdersResponse><ImportTnOrder><CustomerOrderId>1111</CustomerOrderId><OrderCreateDate>2020-02-11T15:04:34.832Z</OrderCreateDate><AccountId>9900778</AccountId><CreatedByUser>user</CreatedByUser><OrderId>ba87c8ef-4cc5-435d-a346-cda601776257</OrderId><LastModifiedDate>2020-02-11T15:04:34.833Z</LastModifiedDate><SiteId>222</SiteId><Subscriber><Name>ABC Inc.</Name><ServiceAddress><HouseNumber>11235</HouseNumber><StreetName>StreetName</StreetName><City>City</City><StateCode>NC</StateCode><Zip>27606</Zip><County>county</County><Country>United States</Country><AddressType>Service</AddressType></ServiceAddress></Subscriber><LoaAuthorizingPerson>LoaAuthorizingPerson</LoaAuthorizingPerson><TelephoneNumbers><TelephoneNumber>9198675309</TelephoneNumber><TelephoneNumber>8288675309</TelephoneNumber></TelephoneNumbers><ProcessingStatus>RECEIVED</ProcessingStatus><Errors/><SipPeerId>333</SipPeerId></ImportTnOrder></ImportTnOrdersResponse>",
5050
"importTnOrderHistory": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><OrderHistoryWrapper><OrderHistory><OrderDate>2020-02-11T15:51:18.363Z</OrderDate><Note>Import TN order has been received by the system.</Note><Author>dtolb-API</Author><Status>received</Status></OrderHistory><OrderHistory><OrderDate>2020-02-11T15:51:18.521Z</OrderDate><Note>Import TN order has failed.</Note><Author>dtolb-API</Author><Status>failed</Status></OrderHistory></OrderHistoryWrapper>",
5151
"importTnOrderResponse": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><ImportTnOrder><OrderCreateDate>2020-02-04T17:58:39.980Z</OrderCreateDate><AccountId>123123</AccountId><CreatedByUser>dtolb-API</CreatedByUser><OrderId>021a94f5-5c55-401f-9cdc-8dca059ad7c1</OrderId><LastModifiedDate>2020-02-04T17:58:41.033Z</LastModifiedDate><SiteId>123</SiteId><Subscriber><Name>ABC Inc.</Name><ServiceAddress><HouseNumber>11235</HouseNumber><StreetName>Back</StreetName><City>Denver</City><StateCode>CO</StateCode><Zip>27541</Zip><County>Canyon</County><Country>United States</Country><AddressType>Service</AddressType></ServiceAddress></Subscriber><LoaAuthorizingPerson>FillThisIn</LoaAuthorizingPerson><TelephoneNumbers><TelephoneNumber>9198675309</TelephoneNumber></TelephoneNumbers><ProcessingStatus>COMPLETE</ProcessingStatus><Errors/><SipPeerId>345</SipPeerId></ImportTnOrder>",
52-
"importTnOrderList": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><ImportTnOrders><TotalCount>2</TotalCount><ImportTnOrderSummary><accountId>9900778</accountId><CountOfTNs>1</CountOfTNs><CustomerOrderId>id</CustomerOrderId><userId>jmulford-api</userId><lastModifiedDate>2020-02-05T15:57:49.311Z</lastModifiedDate><OrderDate>2020-02-05T15:57:49.064Z</OrderDate><OrderType>import_tn_orders</OrderType><OrderStatus>FAILED</OrderStatus><OrderId>0e236be2-ba83-4c96-8a08-8d7502c5f437</OrderId></ImportTnOrderSummary><ImportTnOrderSummary><accountId>9900778</accountId><CountOfTNs>1</CountOfTNs><userId>dtolb-API</userId><lastModifiedDate>2020-02-04T17:58:41.033Z</lastModifiedDate><OrderDate>2020-02-04T17:58:39.980Z</OrderDate><OrderType>import_tn_orders</OrderType><OrderStatus>COMPLETE</OrderStatus><OrderId>021a94f5-5c55-401f-9cdc-8dca059ad7c1</OrderId></ImportTnOrderSummary></ImportTnOrders>"
52+
"importTnOrderList": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><ImportTnOrders><TotalCount>2</TotalCount><ImportTnOrderSummary><accountId>9900778</accountId><CountOfTNs>1</CountOfTNs><CustomerOrderId>id</CustomerOrderId><userId>jmulford-api</userId><lastModifiedDate>2020-02-05T15:57:49.311Z</lastModifiedDate><OrderDate>2020-02-05T15:57:49.064Z</OrderDate><OrderType>import_tn_orders</OrderType><OrderStatus>FAILED</OrderStatus><OrderId>0e236be2-ba83-4c96-8a08-8d7502c5f437</OrderId></ImportTnOrderSummary><ImportTnOrderSummary><accountId>9900778</accountId><CountOfTNs>1</CountOfTNs><userId>dtolb-API</userId><lastModifiedDate>2020-02-04T17:58:41.033Z</lastModifiedDate><OrderDate>2020-02-04T17:58:39.980Z</OrderDate><OrderType>import_tn_orders</OrderType><OrderStatus>COMPLETE</OrderStatus><OrderId>021a94f5-5c55-401f-9cdc-8dca059ad7c1</OrderId></ImportTnOrderSummary></ImportTnOrders>",
53+
"removeImportedTnOrderList": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><RemoveImportedTnOrders><TotalCount>2</TotalCount><RemoveImportedTnOrderSummary><accountId>9900778</accountId><CountOfTNs>2</CountOfTNs><CustomerOrderId>custom string</CustomerOrderId><userId>jmulford-api</userId><lastModifiedDate>2020-02-05T15:33:52.540Z</lastModifiedDate><OrderDate>2020-02-05T15:33:52.517Z</OrderDate><OrderType>remove_imported_tn_orders</OrderType><OrderStatus>FAILED</OrderStatus><OrderId>6f220cc3-5cca-49a5-80ca-612e7d689ab1</OrderId></RemoveImportedTnOrderSummary><RemoveImportedTnOrderSummary><accountId>9900778</accountId><CountOfTNs>1</CountOfTNs><userId>dtolb</userId><lastModifiedDate>2020-02-04T18:01:54.786Z</lastModifiedDate><OrderDate>2020-02-04T18:01:54.434Z</OrderDate><OrderType>remove_imported_tn_orders</OrderType><OrderStatus>COMPLETE</OrderStatus><OrderId>7a992c85-d164-46df-97c4-dac6030ec952</OrderId></RemoveImportedTnOrderSummary></RemoveImportedTnOrders>",
54+
"removeImportedTnOrder": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><RemoveImportedTnOrder><OrderCreateDate>2020-02-04T18:01:54.434Z</OrderCreateDate><AccountId>9900778</AccountId><CreatedByUser>dtolb</CreatedByUser><OrderId>7a992c85-d164-46df-97c4-dac6030ec952</OrderId><LastModifiedDate>2020-02-04T18:01:54.786Z</LastModifiedDate><TelephoneNumbers><TelephoneNumber>9102402158</TelephoneNumber></TelephoneNumbers><ProcessingStatus>COMPLETE</ProcessingStatus><Errors/></RemoveImportedTnOrder>",
55+
"removeImportedTnOrderHistory": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><OrderHistoryWrapper><OrderHistory><OrderDate>2020-02-04T18:01:54.434Z</OrderDate><Note>Remove Imported TN order has been received by the system.</Note><Author>dtolb</Author><Status>received</Status></OrderHistory><OrderHistory><OrderDate>2020-02-04T18:01:54.502Z</OrderDate><Note>Remove Imported TN order processing has started.</Note><Author>dtolb</Author><Status>processing</Status></OrderHistory><OrderHistory><OrderDate>2020-02-04T18:01:54.573Z</OrderDate><Note>Remove Imported TN order processing has started.</Note><Author>dtolb</Author><Status>processing</Status></OrderHistory><OrderHistory><OrderDate>2020-02-04T18:01:54.786Z</OrderDate><Note>Remove Imported TN order is complete.</Note><Author>dtolb</Author><Status>complete</Status></OrderHistory></OrderHistoryWrapper>",
56+
"removeImportedTnOrderResponse": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><RemoveImportedTnOrdersResponse><RemoveImportedTnOrder><CustomerOrderId>ICPA123ABC</CustomerOrderId><OrderCreateDate>2020-02-11T18:18:48.794Z</OrderCreateDate><AccountId>9900778</AccountId><CreatedByUser>dtolb-API</CreatedByUser><OrderId>7527b3fc-3f72-4d0a-acae-ccc7e77857ed</OrderId><LastModifiedDate>2020-02-11T18:18:48.794Z</LastModifiedDate><TelephoneNumbers><TelephoneNumber>9199918388</TelephoneNumber><TelephoneNumber>4158714245</TelephoneNumber><TelephoneNumber>4352154439</TelephoneNumber><TelephoneNumber>4352154466</TelephoneNumber></TelephoneNumbers><ProcessingStatus>RECEIVED</ProcessingStatus><Errors/></RemoveImportedTnOrder></RemoveImportedTnOrdersResponse>"
5357
}

0 commit comments

Comments
 (0)