enhance tests for notification server
This commit is contained in:
@@ -10,43 +10,334 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
core "github.com/diphantxm/ozon-api-client"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNotificationServer(t *testing.T) {
|
type testData struct {
|
||||||
testCases := []struct {
|
raw string
|
||||||
request string
|
object interface{}
|
||||||
response string
|
}
|
||||||
}{
|
|
||||||
// PING
|
func pingTest(t *testing.T) testData {
|
||||||
{
|
return testData{
|
||||||
`{
|
object: &pingRequest{
|
||||||
|
Common: Common{MessageType: PingType},
|
||||||
|
Time: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2019-08-24T14:15:22Z"),
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
"message_type": "TYPE_PING",
|
"message_type": "TYPE_PING",
|
||||||
"time": "2019-08-24T14:15:22Z"
|
"time": "2019-08-24T14:15:22Z"
|
||||||
}`,
|
}`,
|
||||||
`{
|
}
|
||||||
"version": "1.0",
|
}
|
||||||
"name": "Ozon Seller API"
|
|
||||||
}`,
|
func newPostingTest(t *testing.T) testData {
|
||||||
},
|
return testData{
|
||||||
// REGISTERED HANDLER
|
object: &NewPosting{
|
||||||
|
Common: Common{MessageType: NewPostingType},
|
||||||
|
PostingNumber: "24219509-0020-1",
|
||||||
|
Products: []Product{
|
||||||
{
|
{
|
||||||
`{
|
SKU: 147451959,
|
||||||
"message_type": "TYPE_CHAT_CLOSED",
|
Quantity: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
InProccessAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-01-26T06:56:36.294Z"),
|
||||||
|
WarehouseId: 18850503335000,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_NEW_POSTING",
|
||||||
|
"posting_number": "24219509-0020-1",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"sku": 147451959,
|
||||||
|
"quantity": 2
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"in_process_at": "2021-01-26T06:56:36.294Z",
|
||||||
|
"warehouse_id": 18850503335000,
|
||||||
|
"seller_id": 15
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func postingCancelledTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &PostingCancelled{
|
||||||
|
Common: Common{MessageType: PostingCancelledType},
|
||||||
|
PostingNumber: "24219509-0020-1",
|
||||||
|
Products: []Product{
|
||||||
|
{
|
||||||
|
SKU: 147451959,
|
||||||
|
Quantity: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
OldState: "posting_transferred_to_courier_service",
|
||||||
|
NewState: "posting_canceled",
|
||||||
|
ChangedStateDate: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-01-26T06:56:36.294Z"),
|
||||||
|
Reason: Reason{Id: 1, Message: "message"},
|
||||||
|
WarehouseId: 1,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_POSTING_CANCELLED",
|
||||||
|
"posting_number": "24219509-0020-1",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"sku": 147451959,
|
||||||
|
"quantity": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"old_state": "posting_transferred_to_courier_service",
|
||||||
|
"new_state": "posting_canceled",
|
||||||
|
"changed_state_date": "2021-01-26T06:56:36.294Z",
|
||||||
|
"reason": {
|
||||||
|
"id": 1,
|
||||||
|
"message": "message"
|
||||||
|
},
|
||||||
|
"warehouse_id": 1,
|
||||||
|
"seller_id": 15
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func cutoffDateChangedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &CutoffDateChanged{
|
||||||
|
Common: Common{MessageType: CutoffDateChangedType},
|
||||||
|
PostingNumber: "24219509-0020-2",
|
||||||
|
NewCutoffDate: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-24T07:00:00Z"),
|
||||||
|
OldCutoffDate: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-21T10:00:00Z"),
|
||||||
|
WarehouseId: 1,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_CUTOFF_DATE_CHANGED",
|
||||||
|
"posting_number": "24219509-0020-2",
|
||||||
|
"new_cutoff_date": "2021-11-24T07:00:00Z",
|
||||||
|
"old_cutoff_date": "2021-11-21T10:00:00Z",
|
||||||
|
"warehouse_id": 1,
|
||||||
|
"seller_id": 15
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func deliveryDateChangedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &DeliveryDateChanged{
|
||||||
|
Common: Common{MessageType: DeliveryDateChangedType},
|
||||||
|
PostingNumber: "24219509-0020-2",
|
||||||
|
NewDeliveryDateBegin: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-24T07:00:00Z"),
|
||||||
|
NewDeliveryDateEnd: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-24T16:00:00Z"),
|
||||||
|
OldDeliveryDateBegin: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-21T10:00:00Z"),
|
||||||
|
OldDeliveryDateEnd: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-11-21T19:00:00Z"),
|
||||||
|
WarehouseId: 1,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_DELIVERY_DATE_CHANGED",
|
||||||
|
"posting_number": "24219509-0020-2",
|
||||||
|
"new_delivery_date_begin": "2021-11-24T07:00:00Z",
|
||||||
|
"new_delivery_date_end": "2021-11-24T16:00:00Z",
|
||||||
|
"old_delivery_date_begin": "2021-11-21T10:00:00Z",
|
||||||
|
"old_delivery_date_end": "2021-11-21T19:00:00Z",
|
||||||
|
"warehouse_id": 1,
|
||||||
|
"seller_id": 15
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func priceIndexChangedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &PriceIndexChanged{
|
||||||
|
Common: Common{MessageType: PriceIndexChangedType},
|
||||||
|
UpdatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-06-21T05:52:46.648533678Z"),
|
||||||
|
SKU: 147451959,
|
||||||
|
ProductId: 1234,
|
||||||
|
PriceIndex: 5678,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"seller_id": 15,
|
||||||
|
"message_type": "TYPE_PRICE_INDEX_CHANGED",
|
||||||
|
"updated_at":"2022-06-21T05:52:46.648533678Z",
|
||||||
|
"sku": 147451959,
|
||||||
|
"product_id": 1234,
|
||||||
|
"price_index": 5678
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func stocksChangedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &StocksChanged{
|
||||||
|
Common: Common{MessageType: StocksChangedType},
|
||||||
|
Items: []Item{
|
||||||
|
{
|
||||||
|
UpdatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-09-01T14:15:22Z"),
|
||||||
|
SKU: 5678,
|
||||||
|
ProductId: 1234,
|
||||||
|
Stocks: []Stock{
|
||||||
|
{
|
||||||
|
WarehouseId: 10,
|
||||||
|
Present: 50,
|
||||||
|
Reserved: 5,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_STOCKS_CHANGED",
|
||||||
|
"seller_id": 15,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"product_id": 1234,
|
||||||
|
"sku": 5678,
|
||||||
|
"updated_at": "2021-09-01T14:15:22Z",
|
||||||
|
"stocks": [
|
||||||
|
{
|
||||||
|
"warehouse_id": 10,
|
||||||
|
"present": 50,
|
||||||
|
"reserved": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func newMessageTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &NewMessage{
|
||||||
|
Common: Common{MessageType: NewMessageType},
|
||||||
|
ChatId: "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
ChatType: "Buyer_Seller",
|
||||||
|
MessageId: "3000000000817031942",
|
||||||
|
CreatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-07-18T20:58:04.528Z"),
|
||||||
|
User: User{Id: "115568", Type: "Customer"},
|
||||||
|
Data: []string{"Message text"},
|
||||||
|
SellerId: 7,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_NEW_MESSAGE",
|
||||||
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
"chat_type": "Buyer_Seller",
|
"chat_type": "Buyer_Seller",
|
||||||
|
"message_id": "3000000000817031942",
|
||||||
|
"created_at": "2022-07-18T20:58:04.528Z",
|
||||||
|
"user": {
|
||||||
|
"id": "115568",
|
||||||
|
"type": "Customer"
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"Message text"
|
||||||
|
],
|
||||||
|
"seller_id": 7
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateMessageTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &UpdateMessage{
|
||||||
|
NewMessage: NewMessage{
|
||||||
|
Common: Common{MessageType: UpdateMessageType},
|
||||||
|
ChatId: "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
ChatType: "Buyer_Seller",
|
||||||
|
MessageId: "3000000000817031942",
|
||||||
|
CreatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-07-18T20:58:04.528Z"),
|
||||||
|
User: User{
|
||||||
|
Id: "115568",
|
||||||
|
Type: "Сustomer",
|
||||||
|
},
|
||||||
|
Data: []string{"Message text"},
|
||||||
|
SellerId: 7,
|
||||||
|
},
|
||||||
|
UpdatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-07-18T20:59:04.528Z"),
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_UPDATE_MESSAGE",
|
||||||
|
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
"chat_type": "Buyer_Seller",
|
||||||
|
"message_id": "3000000000817031942",
|
||||||
|
"created_at": "2022-07-18T20:58:04.528Z",
|
||||||
|
"updated_at": "2022-07-18T20:59:04.528Z",
|
||||||
"user": {
|
"user": {
|
||||||
"id": "115568",
|
"id": "115568",
|
||||||
"type": "Сustomer"
|
"type": "Сustomer"
|
||||||
},
|
},
|
||||||
"seller_id": "7"
|
"data": [
|
||||||
}`,
|
"Message text"
|
||||||
`{
|
],
|
||||||
"result": true
|
"seller_id": 7
|
||||||
}`,
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func createUpdateItemTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &CreateOrUpdateItem{
|
||||||
|
Common: Common{MessageType: "TYPE_CREATE_OR_UPDATE_ITEM"},
|
||||||
|
OfferId: "1234",
|
||||||
|
ProductId: 5678,
|
||||||
|
IsError: false,
|
||||||
|
ChangedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-09-01T14:15:22Z"),
|
||||||
|
SellerId: 15,
|
||||||
},
|
},
|
||||||
// UNREGISTERED HANDLER
|
raw: `{
|
||||||
{
|
"message_type": "TYPE_CREATE_OR_UPDATE_ITEM",
|
||||||
`{
|
"seller_id": 15,
|
||||||
|
"offer_id": "1234",
|
||||||
|
"product_id": 5678,
|
||||||
|
"is_error": false,
|
||||||
|
"changed_at": "2022-09-01T14:15:22Z"
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func stateChangedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &StateChanged{
|
||||||
|
Common: Common{MessageType: "TYPE_STATE_CHANGED"},
|
||||||
|
PostingNumber: "24219509-0020-2",
|
||||||
|
NewState: "posting_delivered",
|
||||||
|
ChangedStateDate: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2021-02-02T15:07:46.765Z"),
|
||||||
|
WarehouseId: 1,
|
||||||
|
SellerId: 15,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_STATE_CHANGED",
|
||||||
|
"posting_number": "24219509-0020-2",
|
||||||
|
"new_state": "posting_delivered",
|
||||||
|
"changed_state_date": "2021-02-02T15:07:46.765Z",
|
||||||
|
"warehouse_id": 1,
|
||||||
|
"seller_id": 15
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func messageReadTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &MessageRead{
|
||||||
|
LastReadMessageId: "3000000000817031942",
|
||||||
|
NewMessage: NewMessage{
|
||||||
|
Common: Common{MessageType: "TYPE_MESSAGE_READ"},
|
||||||
|
ChatId: "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
ChatType: "Buyer_Seller",
|
||||||
|
MessageId: "3000000000817031942",
|
||||||
|
CreatedAt: core.TimeFromString(t, "2006-01-02T15:04:05Z", "2022-07-18T20:58:04.528Z"),
|
||||||
|
User: User{
|
||||||
|
Id: "115568",
|
||||||
|
Type: "Сustomer",
|
||||||
|
},
|
||||||
|
SellerId: 7,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
"message_type": "TYPE_MESSAGE_READ",
|
"message_type": "TYPE_MESSAGE_READ",
|
||||||
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
"chat_type": "Buyer_Seller",
|
"chat_type": "Buyer_Seller",
|
||||||
@@ -57,8 +348,113 @@ func TestNotificationServer(t *testing.T) {
|
|||||||
"type": "Сustomer"
|
"type": "Сustomer"
|
||||||
},
|
},
|
||||||
"last_read_message_id": "3000000000817031942",
|
"last_read_message_id": "3000000000817031942",
|
||||||
"seller_id": "7"
|
"seller_id": 7
|
||||||
}`,
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func chatClosedTest(t *testing.T) testData {
|
||||||
|
return testData{
|
||||||
|
object: &ChatClosed{
|
||||||
|
Common: Common{MessageType: ChatClosedType},
|
||||||
|
ChatId: "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
ChatType: "Buyer_Seller",
|
||||||
|
User: User{Id: "115568", Type: "Customer"},
|
||||||
|
SellerId: 7,
|
||||||
|
},
|
||||||
|
raw: `{
|
||||||
|
"message_type": "TYPE_CHAT_CLOSED",
|
||||||
|
"chat_id": "b646d975-0c9c-4872-9f41-8b1e57181063",
|
||||||
|
"chat_type": "Buyer_Seller",
|
||||||
|
"user": {
|
||||||
|
"id": "115568",
|
||||||
|
"type": "Customer"
|
||||||
|
},
|
||||||
|
"seller_id": 7
|
||||||
|
}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNotificationServer(t *testing.T) {
|
||||||
|
testCases := []struct {
|
||||||
|
request testData
|
||||||
|
response string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
pingTest(t),
|
||||||
|
`{
|
||||||
|
"version": "1.0",
|
||||||
|
"name": "Ozon Seller API"
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
newPostingTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
postingCancelledTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
stateChangedTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cutoffDateChangedTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
deliveryDateChangedTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
createUpdateItemTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
priceIndexChangedTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
stocksChangedTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
newMessageTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
updateMessageTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
messageReadTest(t),
|
||||||
|
`{
|
||||||
|
"result": true
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
chatClosedTest(t),
|
||||||
`{
|
`{
|
||||||
"result": true
|
"result": true
|
||||||
}`,
|
}`,
|
||||||
@@ -69,13 +465,18 @@ func TestNotificationServer(t *testing.T) {
|
|||||||
|
|
||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
server := NewNotificationServer(port)
|
server := NewNotificationServer(port)
|
||||||
server.Register(ChatClosedType, func(req interface{}) error {
|
server.Register(NewPostingType, comparatorWith(newPostingTest(t).object))
|
||||||
_, ok := req.(*ChatClosed)
|
server.Register(PostingCancelledType, comparatorWith(postingCancelledTest(t).object))
|
||||||
if !ok {
|
server.Register(StateChangedType, comparatorWith(stateChangedTest(t).object))
|
||||||
return fmt.Errorf("req is not of ChatClosed type")
|
server.Register(CutoffDateChangedType, comparatorWith(cutoffDateChangedTest(t).object))
|
||||||
}
|
server.Register(DeliveryDateChangedType, comparatorWith(deliveryDateChangedTest(t).object))
|
||||||
return nil
|
server.Register(CreateOrUpdateType, comparatorWith(createUpdateItemTest(t).object))
|
||||||
})
|
server.Register(PriceIndexChangedType, comparatorWith(priceIndexChangedTest(t).object))
|
||||||
|
server.Register(StocksChangedType, comparatorWith(stocksChangedTest(t).object))
|
||||||
|
server.Register(NewMessageType, comparatorWith(newMessageTest(t).object))
|
||||||
|
server.Register(UpdateMessageType, comparatorWith(updateMessageTest(t).object))
|
||||||
|
server.Register(MessageReadType, comparatorWith(messageReadTest(t).object))
|
||||||
|
server.Register(ChatClosedType, comparatorWith(chatClosedTest(t).object))
|
||||||
go func() {
|
go func() {
|
||||||
if err := server.Run(); err != nil {
|
if err := server.Run(); err != nil {
|
||||||
t.Fatalf("notification server is down: %s", err)
|
t.Fatalf("notification server is down: %s", err)
|
||||||
@@ -87,7 +488,7 @@ func TestNotificationServer(t *testing.T) {
|
|||||||
time.Sleep(3 * time.Second)
|
time.Sleep(3 * time.Second)
|
||||||
|
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
httpResp, err := client.Post(fmt.Sprintf("http://0.0.0.0:%d/", port), "application/json", strings.NewReader(testCase.request))
|
httpResp, err := client.Post(fmt.Sprintf("http://0.0.0.0:%d/", port), "application/json", strings.NewReader(testCase.request.raw))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
continue
|
continue
|
||||||
@@ -106,6 +507,9 @@ func TestNotificationServer(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
err = json.Unmarshal([]byte(testCase.response), &expected)
|
err = json.Unmarshal([]byte(testCase.response), &expected)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
if err := compare(expected, got); err != nil {
|
if err := compare(expected, got); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
@@ -131,3 +535,12 @@ func getFreePort() int {
|
|||||||
|
|
||||||
return listener.Addr().(*net.TCPAddr).Port
|
return listener.Addr().(*net.TCPAddr).Port
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func comparatorWith(v1 interface{}) func(v2 interface{}) error {
|
||||||
|
return func(v2 interface{}) error {
|
||||||
|
if !reflect.DeepEqual(v1, v2) {
|
||||||
|
return fmt.Errorf("objects are not equal:\n got: %#v,\n want: %#v", v2, v1)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ type NewPosting struct {
|
|||||||
WarehouseId int64 `json:"warehouse_id"`
|
WarehouseId int64 `json:"warehouse_id"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Product struct {
|
type Product struct {
|
||||||
@@ -79,7 +79,7 @@ type PostingCancelled struct {
|
|||||||
WarehouseId int64 `json:"warehouse_id"`
|
WarehouseId int64 `json:"warehouse_id"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Reason struct {
|
type Reason struct {
|
||||||
@@ -101,13 +101,13 @@ type StateChanged struct {
|
|||||||
NewState string `json:"new_state"`
|
NewState string `json:"new_state"`
|
||||||
|
|
||||||
// Date and time when the shipment status was changed in UTC format
|
// Date and time when the shipment status was changed in UTC format
|
||||||
ChangedStateDate time.Time `json:"chagned_state_date"`
|
ChangedStateDate time.Time `json:"changed_state_date"`
|
||||||
|
|
||||||
// Warehouse identifier where the products for this shipment are stored
|
// Warehouse identifier where the products for this shipment are stored
|
||||||
WarehouseId int64 `json:"warehouse_id"`
|
WarehouseId int64 `json:"warehouse_id"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shipment shipping date change
|
// Shipment shipping date change
|
||||||
@@ -127,7 +127,7 @@ type CutoffDateChanged struct {
|
|||||||
WarehouseId int64 `json:"warehouse_id"`
|
WarehouseId int64 `json:"warehouse_id"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shipment delivery date change
|
// Shipment delivery date change
|
||||||
@@ -153,7 +153,7 @@ type DeliveryDateChanged struct {
|
|||||||
WarehouseId int64 `json:"warehouse_id"`
|
WarehouseId int64 `json:"warehouse_id"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product creation and update or processing error
|
// Product creation and update or processing error
|
||||||
@@ -173,7 +173,7 @@ type CreateOrUpdateItem struct {
|
|||||||
ChangedAt time.Time `json:"changed_at"`
|
ChangedAt time.Time `json:"changed_at"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product price index change
|
// Product price index change
|
||||||
@@ -193,7 +193,7 @@ type PriceIndexChanged struct {
|
|||||||
PriceIndex int64 `json:"price_index"`
|
PriceIndex int64 `json:"price_index"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stock change at the seller's warehouse
|
// Stock change at the seller's warehouse
|
||||||
@@ -204,7 +204,7 @@ type StocksChanged struct {
|
|||||||
Items []Item `json:"items"`
|
Items []Item `json:"items"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Item struct {
|
type Item struct {
|
||||||
@@ -255,7 +255,7 @@ type NewMessage struct {
|
|||||||
Data []string `json:"data"`
|
Data []string `json:"data"`
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
@@ -295,14 +295,8 @@ type ChatClosed struct {
|
|||||||
// Information about the user who closed the chat
|
// Information about the user who closed the chat
|
||||||
User User `json:"user"`
|
User User `json:"user"`
|
||||||
|
|
||||||
// User identifier
|
|
||||||
Id string `json:"id"`
|
|
||||||
|
|
||||||
// User type
|
|
||||||
Type string `json:"type"`
|
|
||||||
|
|
||||||
// Seller identifier
|
// Seller identifier
|
||||||
SellerId string `json:"seller_id"`
|
SellerId int64 `json:"seller_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Response struct {
|
type Response struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user