Better tests (check that response match the structure) (#52)

Trailing zeros were removed from time in responses because of json marshaling features
This commit is contained in:
Kirill
2023-12-11 03:19:12 +03:00
committed by GitHub
parent 922e2de8b0
commit 1494ff5905
33 changed files with 744 additions and 123 deletions

View File

@@ -66,6 +66,7 @@ func TestRequest(t *testing.T) {
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {

View File

@@ -64,8 +64,11 @@ func TestGetAnalyticsData(t *testing.T) {
resp, err := c.Analytics().GetAnalyticsData(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetAnalyticsDataResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -125,8 +128,11 @@ func TestGetStocksOnWarehouses(t *testing.T) {
resp, err := c.Analytics().GetStocksOnWarehouses(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetStocksOnWarehousesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -54,8 +54,11 @@ func TestGenerateBarcodes(t *testing.T) {
resp, err := c.Barcodes().Generate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GenerateBarcodesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -121,8 +124,11 @@ func TestBindBarcodes(t *testing.T) {
resp, err := c.Barcodes().Bind(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &BindBarcodesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -29,7 +29,6 @@ func TestListCertifiedBrands(t *testing.T) {
"result": {
"brand_certification": [
{
"brand_id": 135476863,
"brand_name": "Sea of Spa",
"has_certificate": false
}
@@ -57,8 +56,11 @@ func TestListCertifiedBrands(t *testing.T) {
resp, err := c.Brands().List(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListCertifiedBrandsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -67,8 +67,11 @@ func TestGetCancellationInfo(t *testing.T) {
resp, err := c.Cancellations().GetInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetCancellationInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -123,9 +126,9 @@ func TestListCancellations(t *testing.T) {
"state": "APPROVED"
},
"cancellation_initiator": "CLIENT",
"order_date": "2021-09-03T07:04:53.220Z",
"order_date": "2021-09-03T07:04:53.22Z",
"approve_comment": "",
"approve_date": "2021-09-03T09:13:12.614200Z",
"approve_date": "2021-09-03T09:13:12.6142Z",
"auto_approve_date": "2021-09-06T07:17:12.116114Z"
},
{
@@ -177,8 +180,11 @@ func TestListCancellations(t *testing.T) {
resp, err := c.Cancellations().List(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListCancellationsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -222,8 +228,11 @@ func TestApproveCancellations(t *testing.T) {
resp, err := c.Cancellations().Approve(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ApproveRejectCancellationsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -267,8 +276,11 @@ func TestRejectCancellations(t *testing.T) {
resp, err := c.Cancellations().Reject(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ApproveRejectCancellationsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -56,8 +56,11 @@ func TestGetProductTree(t *testing.T) {
resp, err := c.Categories().Tree(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductTreeResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -118,8 +121,11 @@ func TestGetCategoryAttributes(t *testing.T) {
resp, err := c.Categories().Attributes(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetCategoryAttributesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -178,8 +184,11 @@ func TestGetAttributeDictionary(t *testing.T) {
resp, err := c.Categories().AttributesDictionary(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetAttributeDictionaryResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -100,7 +100,7 @@ type ListOfCertifiedCategoriesResponse struct {
core.CommonResponse
// Method result
Result ListOfCertifiedCategoriesResult `json:"reult"`
Result ListOfCertifiedCategoriesResult `json:"result"`
}
type ListOfCertifiedCategoriesResult struct {
@@ -233,7 +233,7 @@ type GetCertificateInfoResult struct {
AccordanceTypeCode string `json:"accordance_type_code"`
// Certificate rejection reason
RejectionReasonCode string `json:"rejectio_reason_code"`
RejectionReasonCode string `json:"rejection_reason_code"`
// Moderator's comment
VerificationComment string `json:"verification_comment"`
@@ -307,7 +307,7 @@ type ListCertificatesResultCert struct {
CertificateName string `json:"certificate_name"`
// Type
TypeCode string `json:"type"`
TypeCode string `json:"type_code"`
// Status
StatusCode string `json:"status_code"`
@@ -316,13 +316,13 @@ type ListCertificatesResultCert struct {
AccordanceTypecode string `json:"accordance_type_code"`
// Certificate rejection reason
RejectionReasonCode string `json:"rejectio_reason_code"`
RejectionReasonCode string `json:"rejection_reason_code"`
// Moderator's comment
VerificationComment string `json:"verification_comment"`
// Issue date
IssueDate time.Time `json:"issue_data"`
IssueDate time.Time `json:"issue_date"`
// Expire date
ExpireDate time.Time `json:"expire_date"`

View File

@@ -56,8 +56,11 @@ func TestListOfAccordanceTypes(t *testing.T) {
resp, err := c.Certificates().ListOfAccordanceTypes(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListOfAccordanceTypesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -119,8 +122,11 @@ func TestDirectoryOfDocumentTypes(t *testing.T) {
resp, err := c.Certificates().DirectoryOfDocumentTypes(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DirectoryOfDocumentTypesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -175,8 +181,11 @@ func TestListOfCertifiedCategories(t *testing.T) {
resp, err := c.Certificates().ListOfCertifiedCategories(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListOfCertifiedCategoriesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -223,8 +232,11 @@ func TestLinkCertificateToProduct(t *testing.T) {
resp, err := c.Certificates().LinkToProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &LinkCertificateToProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -273,8 +285,11 @@ func TestDeleteCertificate(t *testing.T) {
resp, err := c.Certificates().Delete(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DeleteCertificateResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -332,8 +347,11 @@ func TestGetCertificateInfo(t *testing.T) {
resp, err := c.Certificates().GetInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetCertificateInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -406,8 +424,11 @@ func TestListCertificates(t *testing.T) {
resp, err := c.Certificates().List(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListCertificatesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -453,8 +474,11 @@ func TestProductStatuses(t *testing.T) {
resp, err := c.Certificates().ProductStatuses(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductStatusesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -511,8 +535,11 @@ func TestListProductsForCertificate(t *testing.T) {
resp, err := c.Certificates().ListProductsForCertificate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListProductsForCertificateResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -565,8 +592,11 @@ func TestUnlinkFromProduct(t *testing.T) {
resp, err := c.Certificates().UnlinkFromProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UnlinkFromProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -612,8 +642,11 @@ func TestPossibleRejectReasons(t *testing.T) {
resp, err := c.Certificates().PossibleRejectReasons(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PossibleRejectReasonsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -659,8 +692,11 @@ func TestPossibleStatuses(t *testing.T) {
resp, err := c.Certificates().PossibleStatuses(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PossibleStatusesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -712,8 +748,11 @@ func TestAddCertificatesForProducts(t *testing.T) {
resp, err := c.Certificates().AddForProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AddCertificatesForProductsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -66,8 +66,11 @@ func TestListChats(t *testing.T) {
resp, err := c.Chats().List(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListChatsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -125,8 +128,11 @@ func TestSendMessage(t *testing.T) {
resp, err := c.Chats().SendMessage(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &SendMessageResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -174,8 +180,11 @@ func TestSendFile(t *testing.T) {
resp, err := c.Chats().SendFile(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &SendFileResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -238,8 +247,11 @@ func TestChatHistory(t *testing.T) {
resp, err := c.Chats().History(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ChatHistoryResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -305,8 +317,11 @@ func TestUpdateChat(t *testing.T) {
resp, err := c.Chats().Update(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UpdateChatResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -354,8 +369,11 @@ func TestCreateNewChat(t *testing.T) {
resp, err := c.Chats().Create(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateNewChatResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -408,8 +426,11 @@ func TestMarkAsRead(t *testing.T) {
resp, err := c.Chats().MarkAsRead(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &MarkAsReadResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -666,3 +666,16 @@ const (
// FBS
GiveoutDeliverySchemaFBS GiveoutDeliverySchema = "GIVEOUT_DELIVERY_SCHEMA_FBS"
)
type MandatoryMarkStatus string
const (
// Labeling is processed
MandatoryMarkStatusProcessing MandatoryMarkStatus = "processing"
// Check is passed
MandatoryMarkStatusPassed MandatoryMarkStatus = "passed"
// Check is failed
MandatoryMarkStatusFailed MandatoryMarkStatus = "failed"
)

View File

@@ -248,7 +248,7 @@ type GetShipmentDetailsResultAdditionalData struct {
type GetShipmentDetailsResultAnalyticsData struct {
// Delivery city
City string `json:"Delivery city"`
City string `json:"city"`
// Delivery method
DeliveryType string `json:"delivery_type"`
@@ -323,10 +323,14 @@ type SupplyRequestCommonResponse struct {
LocalTimeslot SupplyRequestCommonResponseLocalTimeslot `json:"local_timeslot"`
// Date from which you want to bring the supply to the warehouse. Only for supplies via vDC
PreferredSupplyDataFrom string `json:"preferred_supply_data_from"`
PreferredSupplyDateFrom string `json:"preferred_supply_date_from"`
// Date by which you want to bring the supply to the warehouse. Only for supplies via vDC
PreferredSupplyDataTo string `json:"preferred_supply_data_to"`
PreferredSupplyDateTo string `json:"preferred_supply_date_to"`
// Your own warehouse from which you'll take the products to the supply warehouse.
// Only for supplies via vDC
SellerWarehouse SupplyRequestSellerWarehouse `json:"seller_warehouse"`
// Status of a supply by request
State string `json:"state"`
@@ -353,6 +357,17 @@ type SupplyRequestCommonResponse struct {
TotalQuantity int32 `json:"total_quantity"`
}
type SupplyRequestSellerWarehouse struct {
// Warehouse address
Address string `json:"address"`
// Warehouse name
Name string `json:"name"`
// Warehouse identifier
WarehouseId int64 `json:"warehouse_id"`
}
type SupplyRequestCommonResponseLocalTimeslot struct {
// Interval start
From string `json:"from"`

View File

@@ -44,8 +44,8 @@ func TestGetFBOShipmentsList(t *testing.T) {
"posting_number": "16965409-0014-1",
"status": "delivered",
"cancel_reason_id": 0,
"created_at": "2021-09-01T00:23:45.607000Z",
"in_process_at": "2021-09-01T00:25:30.120000Z",
"created_at": "2021-09-01T00:23:45.607Z",
"in_process_at": "2021-09-01T00:25:30.12Z",
"products": [
{
"sku": 160249683,
@@ -138,8 +138,11 @@ func TestGetFBOShipmentsList(t *testing.T) {
resp, err := c.FBO().GetShipmentsList(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFBOShipmentsListResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -267,8 +270,11 @@ func TestGetShipmentDetails(t *testing.T) {
resp, err := c.FBO().GetShipmentDetails(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetShipmentDetailsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -346,8 +352,11 @@ func TestListSupplyRequests(t *testing.T) {
resp, err := c.FBO().ListSupplyRequests(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListSupplyRequestsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -422,8 +431,11 @@ func TestGetSupplyRequestInfo(t *testing.T) {
resp, err := c.FBO().GetSupplyRequestInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetSupplyRequestInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -481,8 +493,11 @@ func TestListProductsInSupplyRequest(t *testing.T) {
resp, err := c.FBO().ListProductsInSupplyRequest(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListProductsInSupplyRequestResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -540,8 +555,11 @@ func TestGetWarehouseWorkload(t *testing.T) {
resp, err := c.FBO().GetWarehouseWorkload(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetWarehouseWorkloadResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -408,7 +408,7 @@ type MarketplaceServices struct {
DirectFlowTrans float64 `json:"marketplace_service_item_direct_flow_trans"`
// Shipment processing in the fulfilment warehouse (FF)
DropoffFF float64 `json:"marketplace_service_item_item_dropoff_ff"`
DropoffFF float64 `json:"marketplace_service_item_dropoff_ff"`
// Shipment processing at the pick up point
DropoffPVZ float64 `json:"marketplace_service_item_dropoff_pvz"`
@@ -910,7 +910,7 @@ type GetShipmentDataByIdentifierResult struct {
Barcodes FBSBarcode `json:"barcodes"`
// Cancellation details
Cancellation FBSCancellation `json:"calcellation"`
Cancellation FBSCancellation `json:"cancellation"`
// Courier information
Courier GetShipmentDataByIdentifierResultCourier `json:"courier"`
@@ -925,10 +925,10 @@ type GetShipmentDataByIdentifierResult struct {
DeliveryMethod FBSDeliveryMethod `json:"delivery_method"`
// Delivery cost
DeliveryPrice string `json:"delivery_type"`
DeliveryPrice string `json:"delivery_price"`
// Data on the product cost, discount amount, payout and commission
FinancialData FBSFinancialData `json:"financial_date"`
FinancialData FBSFinancialData `json:"financial_data"`
// Start date and time of shipment processing
InProcessAt time.Time `json:"in_process_at"`
@@ -1118,20 +1118,39 @@ type ProductDimension struct {
}
type FBSProductExemplar struct {
// Product item validation errors
Errors []string `json:"errors"`
// Mandatory “Chestny ZNAK” labeling
MandatoryMark string `json:"mandatory_mark"`
// "Chestny ZNAK" labeling check status
MandatoryMarkCheckStatus MandatoryMarkStatus `json:"mandatory_mark_check_status"`
// "Chestny ZNAK" labeling check error codes
MandatoryMarkErrorCodes []string `json:"mandatory_mark_error_codes"`
// Сustoms cargo declaration (CCD) number
GTD string `json:"gtd"`
// Сustoms cargo declaration (CCD) check status
GTDCheckStatus string `json:"gtd_check_status"`
// Indication that a сustoms cargo declaration (CCD) number hasn't been specified
IsGTDAbsest bool `json:"is_gtd_absent"`
// Сustoms cargo declaration (CCD) check error codes
GTDErrorCodes []string `json:"gtd_error_codes"`
// Product batch registration number
RNPT string `json:"rnpt"`
// Indication that a product batch registration number hasn't been specified
IsRNPTAbsent bool `json:"is_rnpt_absent"`
// Check result.
// `true` if the labeling code of product item meets the requirements
Valid bool `json:"valid"`
}
// Method for getting shipment details by identifier
@@ -1244,7 +1263,7 @@ type ListOfShipmentCertificatesResult struct {
IntegrationType string `json:"integration_type"`
// Number of package units
ContainersCount int32 `json:"container_count"`
ContainersCount int32 `json:"containers_count"`
// Shipping status
Status string `json:"status"`
@@ -1767,7 +1786,7 @@ type CheckProductItemsDataResponse struct {
// For example, you have 10 product items in your system.
// You have passed them for checking and saving. Then they added another 60 product items to your system.
// When you pass product items for checking and saving again, pass all of them: both old and newly added
func (c FBS) CheckproductItemsData(ctx context.Context, params *CheckProductItemsDataParams) (*CheckProductItemsDataResponse, error) {
func (c FBS) CheckProductItemsData(ctx context.Context, params *CheckProductItemsDataParams) (*CheckProductItemsDataResponse, error) {
url := "/v4/fbs/posting/product/exemplar/set"
resp := &CheckProductItemsDataResponse{}
@@ -2466,7 +2485,7 @@ type ListShipmentInCertificateResult struct {
SellerError string `json:"seller_error"`
// Shipment record update date and time
UpdatedAt time.Time `json:"update_at"`
UpdatedAt time.Time `json:"updated_at"`
// Shipment record creation date and time
CreatedAt time.Time `json:"created_at"`

View File

@@ -172,8 +172,11 @@ func TestListUnprocessedShipments(t *testing.T) {
resp, err := c.FBS().ListUnprocessedShipments(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListUnprocessedShipmentsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -291,8 +294,11 @@ func TestGetFBSShipmentsList(t *testing.T) {
resp, err := c.FBS().GetFBSShipmentsList(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFBSShipmentsListResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -353,8 +359,11 @@ func TestPackOrder(t *testing.T) {
resp, err := c.FBS().PackOrder(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PackOrderResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -431,8 +440,11 @@ func TestValidateLabelingCodes(t *testing.T) {
resp, err := c.FBS().ValidateLabelingCodes(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ValidateLabelingCodesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -472,31 +484,8 @@ func TestGetShipmentDataByBarcode(t *testing.T) {
"order_id": 438764970,
"order_number": "57195475-0050",
"status": "awaiting_packaging",
"delivery_method": {
"id": 18114520187000,
"name": "Ozon Логистика самостоятельно, Москва",
"warehouse_id": 18114520187000,
"warehouse": "Москва основной",
"tpl_provider_id": 24,
"tpl_provider": "Ozon Логистика"
},
"tracking_number": "",
"tpl_integration_type": "ozon",
"in_process_at": "2021-11-20T09:14:16Z",
"shipment_date": "2021-11-23T10:00:00Z",
"delivering_date": null,
"provider_status": "",
"delivery_price": "",
"cancellation": {
"cancel_reason_id": 0,
"cancel_reason": "",
"cancellation_type": "",
"cancelled_after_ship": false,
"affect_cancellation_rating": false,
"cancellation_initiator": ""
},
"customer": null,
"addressee": null,
"products": [
{
"price": "279.0000",
@@ -504,25 +493,12 @@ func TestGetShipmentDataByBarcode(t *testing.T) {
"name": "Кофе ароматизированный \"Шоколадный апельсин\" 250 гр",
"sku": 180550365,
"quantity": 1,
"mandatory_mark": [],
"dimensions": {
"height": "40.00",
"length": "240.00",
"weight": "260",
"width": "140.00"
}
"mandatory_mark": []
}
],
"barcodes": null,
"analytics_data": null,
"financial_data": null,
"additional_data": [],
"is_express": false,
"requirements": {
"products_requiring_gtd": [],
"products_requiring_country": []
},
"product_exemplars": null
"financial_data": null
}
}`,
},
@@ -545,8 +521,11 @@ func TestGetShipmentDataByBarcode(t *testing.T) {
resp, err := c.FBS().GetShipmentDataByBarcode(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetShipmentDataByBarcodeResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -659,8 +638,11 @@ func TestGetShipmentDataByIdentifier(t *testing.T) {
resp, err := c.FBS().GetShipmentDataByIdentifier(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetShipmentDataByIdentifierResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -732,8 +714,11 @@ func TestAddTrackingNumbers(t *testing.T) {
resp, err := c.FBS().AddTrackingNumbers(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AddTrackingNumbersResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -826,8 +811,11 @@ func TestListOfShipmentCertificates(t *testing.T) {
resp, err := c.FBS().ListOfShipmentCertificates(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListOfShipmentCertificatesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -888,8 +876,11 @@ func TestSignShipmentCertificate(t *testing.T) {
resp, err := c.FBS().SignShipmentCertificate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &SignShipmentCertificateResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -964,24 +955,30 @@ func TestChangeStatusTo(t *testing.T) {
deliveringResp, err := c.FBS().ChangeStatusToDelivering(deliveringctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ChangeStatusToResponse{})
lastMilectx, _ := context.WithTimeout(context.Background(), testTimeout)
lastMileResp, err := c.FBS().ChangeStatusToLastMile(lastMilectx, test.params)
if err != nil {
t.Error(err)
continue
}
deliveredctx, _ := context.WithTimeout(context.Background(), testTimeout)
deliveredResp, err := c.FBS().ChangeStatusToDelivered(deliveredctx, test.params)
if err != nil {
t.Error(err)
continue
}
sendBySellerctx, _ := context.WithTimeout(context.Background(), testTimeout)
sendBySellerResp, err := c.FBS().ChangeStatusToSendBySeller(sendBySellerctx, test.params)
if err != nil {
t.Error(err)
continue
}
assertResponse(t, &test, deliveringResp)
@@ -1030,8 +1027,11 @@ func TestPassShipmentToShipping(t *testing.T) {
resp, err := c.FBS().PassShipmentToShipping(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PassShipmentToShippingResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1079,8 +1079,11 @@ func TestCancelShipment(t *testing.T) {
resp, err := c.FBS().CancelShipment(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CancelShipmentResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1130,8 +1133,11 @@ func TestCreateAct(t *testing.T) {
resp, err := c.FBS().CreateAct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateActResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1180,8 +1186,11 @@ func TestGetLabeling(t *testing.T) {
resp, err := c.FBS().GetLabeling(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetLabelingResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1234,8 +1243,11 @@ func TestPrintLabeling(t *testing.T) {
resp, err := c.FBS().PrintLabeling(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PrintLabelingResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1289,8 +1301,11 @@ func TestCreateTaskForGeneratingLabel(t *testing.T) {
resp, err := c.FBS().CreateTaskForGeneratingLabel(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateTaskForGeneratingLabelResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1350,8 +1365,11 @@ func TestGetDropOffPointRestrictions(t *testing.T) {
resp, err := c.FBS().GetDropOffPointRestrictions(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetDropOffPointRestrictionsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1408,11 +1426,14 @@ func TestCheckProductItemsData(t *testing.T) {
c := NewMockClient(core.NewMockHttpHandler(test.statusCode, test.response, test.headers))
ctx, _ := context.WithTimeout(context.Background(), testTimeout)
resp, err := c.FBS().CheckproductItemsData(ctx, test.params)
resp, err := c.FBS().CheckProductItemsData(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CheckProductItemsDataResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1475,8 +1496,11 @@ func TestGetProductItemsCheckStatuses(t *testing.T) {
resp, err := c.FBS().GetProductItemsCheckStatuses(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductItemsCheckStatusesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1544,8 +1568,11 @@ func TestRescheduleShipmentDeliveryDate(t *testing.T) {
resp, err := c.FBS().RescheduleShipmentDeliveryDate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RescheduleShipmentDeliveryDateResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1596,8 +1623,11 @@ func TestDateAvailableForDeliverySchedule(t *testing.T) {
resp, err := c.FBS().DateAvailableForDeliverySchedule(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DateAvailableForDeliveryScheduleResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1656,8 +1686,11 @@ func TestListManufactoruingCountries(t *testing.T) {
resp, err := c.FBS().ListManufacturingCountries(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListManufacturingCountriesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1717,8 +1750,11 @@ func TestSetManufacturingCountry(t *testing.T) {
resp, err := c.FBS().SetManufacturingCountry(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &SetManufacturingCountryResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1785,8 +1821,11 @@ func TestPartialPackOrder(t *testing.T) {
resp, err := c.FBS().PartialPackOrder(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PartialPackOrderResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1858,8 +1897,11 @@ func TestAvailableFreightsList(t *testing.T) {
resp, err := c.FBS().AvailableFreightsList(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AvailableFreightsListResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1906,8 +1948,11 @@ func TestGenerateAct(t *testing.T) {
resp, err := c.FBS().GenerateAct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GenerateActResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1956,8 +2001,11 @@ func TestGetDigitalAct(t *testing.T) {
resp, err := c.FBS().GetDigitalAct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetDigitalActResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2011,8 +2059,11 @@ func TestPackageUnitLabels(t *testing.T) {
resp, err := c.FBS().PackageUnitLabel(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &PackageUnitLabelsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2064,8 +2115,11 @@ func TestOpenDisputeOverShipment(t *testing.T) {
resp, err := c.FBS().OpenDisputeOverShipment(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &OpenDisputeOverShipmentResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2132,8 +2186,11 @@ func TestShipmentCancellationReasons(t *testing.T) {
resp, err := c.FBS().ShipmentCancellationReasons(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ShipmentCancellationReasonsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2228,8 +2285,11 @@ func TestShipmentsCancellationReasons(t *testing.T) {
resp, err := c.FBS().ShipmentsCancellationReasons(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ShipmentsCancellationReasonsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2290,8 +2350,11 @@ func TestAddWeightForBulkProduct(t *testing.T) {
resp, err := c.FBS().AddWeightForBulkProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AddWeightForBulkProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2351,8 +2414,11 @@ func TestCancelSending(t *testing.T) {
resp, err := c.FBS().CancelSending(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CancelSendingResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2417,8 +2483,11 @@ func TestListShipmentInCertificate(t *testing.T) {
resp, err := c.FBS().ListShipmentInCertificate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListShipmentInCertificateResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2466,8 +2535,11 @@ func TestSpecifyNumberOfBoxes(t *testing.T) {
resp, err := c.FBS().SpecifyNumberOfBoxes(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &SpecifyNumberOfBoxesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2492,7 +2564,13 @@ func TestStatusOfAct(t *testing.T) {
},
`{
"result": {
"result": true
"added_to_act": [
"true"
],
"removed_from_act": [
"false"
],
"status": "ready"
}
}`,
},
@@ -2515,8 +2593,11 @@ func TestStatusOfAct(t *testing.T) {
resp, err := c.FBS().StatusOfAct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &StatusOfActResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2574,8 +2655,11 @@ func TestETGBCustomsDeclarations(t *testing.T) {
resp, err := c.FBS().ETGBCustomsDeclarations(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ETGBCustomsDeclarationsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2623,8 +2707,11 @@ func TestBarcodeFromProductShipment(t *testing.T) {
resp, err := c.FBS().BarcodeFromProductShipment(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &BarcodeFromProductShipmentResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2682,8 +2769,11 @@ func TestBarcodeValueFromProductShipment(t *testing.T) {
resp, err := c.FBS().BarcodeValueFromProductShipment(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &BarcodeValueFromProductShipmentResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2737,8 +2827,11 @@ func TestGetActPDF(t *testing.T) {
resp, err := c.FBS().GetActPDF(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetActPDFResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -211,7 +211,7 @@ type GetTotalTransactionsSumResult struct {
AccrualsForSale float64 `json:"accruals_for_sale"`
// Compensations
CompensationAmount float64 `json:"compensatino_amount"`
CompensationAmount float64 `json:"compensation_amount"`
// Charges for delivery and returns when working under rFBS scheme
MoneyTransfer float64 `json:"money_transfer"`

View File

@@ -25,7 +25,7 @@ func TestReportOnSoldProducts(t *testing.T) {
&ReportOnSoldProductsParams{
Date: "2022-09",
},
`{
`{
"result": {
"header": {
"doc_date": "2022-09-22",
@@ -69,7 +69,7 @@ func TestReportOnSoldProducts(t *testing.T) {
]
}
}`,
"",
"",
},
// Test No Client-Id or Api-Key
{
@@ -91,8 +91,11 @@ func TestReportOnSoldProducts(t *testing.T) {
resp, err := c.Finance().ReportOnSoldProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ReportOnSoldProductsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -160,8 +163,11 @@ func TestGetTotalTransactionsSum(t *testing.T) {
resp, err := c.Finance().GetTotalTransactionsSum(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetTotalTransactionsSumResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -249,8 +255,11 @@ func TestListTransactions(t *testing.T) {
resp, err := c.Finance().ListTransactions(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListTransactionsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -53,8 +53,11 @@ func TestCreateUpdateProformaLink(t *testing.T) {
resp, err := c.Invoices().CreateUpdate(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateUpdateProformaLinkResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -102,8 +105,11 @@ func TestGetProformaLink(t *testing.T) {
resp, err := c.Invoices().Get(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProformaLinkResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -149,8 +155,11 @@ func TestDeleteProformaLink(t *testing.T) {
resp, err := c.Invoices().Delete(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DeleteProformaLinkResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -626,12 +626,14 @@ func TestNotificationServerErrors(t *testing.T) {
if err != nil {
t.Error(err)
continue
continue
}
gotJson, err := ioutil.ReadAll(httpResp.Body)
if err != nil {
t.Error(err)
continue
continue
}
expected := map[string]interface{}{}
@@ -640,16 +642,19 @@ func TestNotificationServerErrors(t *testing.T) {
if err != nil {
t.Error(err)
continue
continue
}
err = json.Unmarshal([]byte(testCase.response), &expected)
if err != nil {
t.Error(err)
continue
continue
}
if err := compare(expected, got); err != nil {
t.Error(err)
continue
continue
}
}
}

View File

@@ -25,7 +25,7 @@ func TestCreateDeliveryPolygon(t *testing.T) {
Coordinates: "[[[30.149574279785153,59.86550435303646],[30.21205902099609,59.846884387977326],[30.255661010742184,59.86240174913176],[30.149574279785153,59.86550435303646]]]",
},
`{
"polygonId": "1323"
"polygon_id": 1323
}`,
},
// Test No Client-Id or Api-Key
@@ -47,8 +47,11 @@ func TestCreateDeliveryPolygon(t *testing.T) {
resp, err := c.Polygons().CreateDelivery(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateDeliveryPolygonResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -102,8 +105,11 @@ func TestLinkDeliveryMethodToPolygon(t *testing.T) {
resp, err := c.Polygons().Link(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &LinkDeliveryMethodToPolygonResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -16,66 +16,66 @@ type GetStocksInfoParams struct {
// Identifier of the last value on the page. Leave this field blank in the first request.
//
// To get the next values, specify last_id from the response of the previous request.
LastId string `json:"last_id,omitempty"`
LastId string `json:"last_id"`
// Number of values per page. Minimum is 1, maximum is 1000
Limit int64 `json:"limit,omitempty"`
Limit int64 `json:"limit"`
// Filter by product
Filter GetStocksInfoFilter `json:"filter,omitempty"`
Filter GetStocksInfoFilter `json:"filter"`
}
type GetStocksInfoFilter struct {
// Filter by the offer_id parameter. It is possible to pass a list of values
OfferId string `json:"offer_id,omitempty"`
OfferId string `json:"offer_id"`
// Filter by the product_id parameter. It is possible to pass a list of values
ProductId int64 `json:"product_id,omitempty"`
ProductId int64 `json:"product_id"`
// Filter by product visibility
Visibility string `json:"visibility,omitempty"`
Visibility string `json:"visibility"`
}
type GetStocksInfoResponse struct {
core.CommonResponse
// Method Result
Result GetStocksInfoResult `json:"result,omitempty"`
Result GetStocksInfoResult `json:"result"`
}
type GetStocksInfoResult struct {
// Identifier of the last value on the page
//
// To get the next values, specify the recieved value in the next request in the last_id parameter
LastId string `json:"last_id,omitempty"`
LastId string `json:"last_id"`
// The number of unique products for which information about stocks is displayed
Total int32 `json:"total,omitempty"`
Total int32 `json:"total"`
// Product details
Items []GetStocksInfoResultItem `json:"items,omitempty"`
Items []GetStocksInfoResultItem `json:"items"`
}
type GetStocksInfoResultItem struct {
// Product identifier in the seller's system
OfferId string `json:"offer_id,omitempty"`
OfferId string `json:"offer_id"`
// Product identifier
ProductId int64 `json:"product_id,omitempty"`
ProductId int64 `json:"product_id"`
// Stock details
Stocks []GetStocksInfoResultItemStock `json:"stocks,omitempty"`
Stocks []GetStocksInfoResultItemStock `json:"stocks"`
}
type GetStocksInfoResultItemStock struct {
// In a warehouse
Present int32 `json:"present,omitempty"`
Present int32 `json:"present"`
// Reserved
Reserved int32 `json:"reserved,omitempty"`
Reserved int32 `json:"reserved"`
// Warehouse type
Type string `json:"type,omitempty" default:"ALL"`
Type string `json:"type" default:"ALL"`
}
// Returns information about the quantity of products in stock:
@@ -112,7 +112,7 @@ type GetProductDetailsResponse struct {
core.CommonResponse
// Request results
Result ProductDetails `json:"Result"`
Result ProductDetails `json:"result"`
}
type ProductDetails struct {
@@ -210,12 +210,12 @@ type ProductDetails struct {
Price string `json:"price"`
// Product price indexes
PriceIndexes ProductDetailPriceIndex `json:"prices_indexes"`
PriceIndexes ProductDetailPriceIndex `json:"price_indexes"`
// Deprecated: Price index. Learn more in Help Center
//
// Use PriceIndexes instead
PriceIndex string `json:"price_idnex"`
PriceIndex string `json:"price_index"`
// Product price suggested by the system based on similar offers
RecommendedPrice string `json:"recommended_price"`
@@ -242,7 +242,7 @@ type ProductDetails struct {
Visible bool `json:"visible"`
// Product volume weight
VolumeWeight float64 `json:"volume_weights"`
VolumeWeight float64 `json:"volume_weight"`
}
type ProductDetailCommission struct {
@@ -276,7 +276,7 @@ type ProductDetailPriceIndex struct {
PriceIndex string `json:"price_index"`
// Price of your product on other marketplaces
SelfMarketplaceIndexData ProductDetailPriceIndexSelfMarketplace `json:"self_marketplace_index_data"`
SelfMarketplaceIndexData ProductDetailPriceIndexSelfMarketplace `json:"self_marketplaces_index_data"`
}
type ProductDetailPriceIndexExternal struct {
@@ -383,6 +383,9 @@ type ProductDetailVisibilityDetails struct {
// If there is stock at the warehouses, the value is true
HasStock bool `json:"has_stock"`
// Reason why the product is hidden
Reasons map[string]interface{} `json:"reasons"`
}
type ProductDiscountedStocks struct {
@@ -1152,6 +1155,10 @@ type CreateProductsByOzonIDItem struct {
type CreateProductByOzonIDResponse struct {
core.CommonResponse
Result CreateProductByOzonIDResult `json:"result"`
}
type CreateProductByOzonIDResult struct {
// Products import task code
TaskId int64 `json:"task_id"`
@@ -1944,7 +1951,7 @@ type GetPRoductPriceInfoResultItem struct {
PriceIndex string `json:"price_index"`
// Product price indexes
PriceIndexes GetProductPriceInfoResultItemPriceIndexes `json:"prices_indexes"`
PriceIndexes GetProductPriceInfoResultItemPriceIndexes `json:"price_indexes"`
// Product identifier
ProductId int64 `json:"product_id"`
@@ -1988,7 +1995,7 @@ type GetProductPriceInfoResultItemCommission struct {
FBSShipmentProcessingToFee float64 `json:"fbs_first_mile_min_amount"`
// Maximal shipment processing fee (FBS) — 25 rubles
FBSShipmentProcessingFromFee float64 `json:"Shipment processing fee from (FBS)"`
FBSShipmentProcessingFromFee float64 `json:"fbs_first_mile_max_amount"`
// Return and cancellation fees, shipment processing (FBS)
FBSReturnCancellationProcessingFee float64 `json:"fbs_return_flow_amount"`
@@ -2086,7 +2093,7 @@ type GetProductPriceInfoResultItemPriceIndexes struct {
PriceIndex string `json:"price_index"`
// Price of your product on other marketplaces
SelfMarketplaceIndexData GetProductPriceInfoResultItemPriceIndexesSelfMarketplace `json:"self_marketplace_index_data"`
SelfMarketplaceIndexData GetProductPriceInfoResultItemPriceIndexesSelfMarketplace `json:"self_marketplaces_index_data"`
}
type GetProductPriceInfoResultItemPriceIndexesExternal struct {
@@ -2166,7 +2173,7 @@ type GetMarkdownInfoItem struct {
// - 3 — very good,
// - 4 — excellent,
// - 57 — like new
ConditionEstimate string `json:"condition_estimate"`
ConditionEstimation string `json:"condition_estimation"`
// Product defects
Defects string `json:"defects"`

View File

@@ -75,8 +75,11 @@ func TestGetStocksInfo(t *testing.T) {
resp, err := c.Products().GetStocksInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetStocksInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -161,7 +164,6 @@ func TestGetProductDetails(t *testing.T) {
"present": 0,
"reserved": 0
},
"errors": [],
"updated_at": "2023-02-09T06:46:44.152Z",
"vat": "0.0",
"visible": false,
@@ -273,8 +275,11 @@ func TestGetProductDetails(t *testing.T) {
resp, err := c.Products().GetProductDetails(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductDetailsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -348,8 +353,11 @@ func TestUpdateStocks(t *testing.T) {
resp, err := c.Products().UpdateStocks(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UpdateStocksResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -418,8 +426,11 @@ func TestStocksInSellersWarehouse(t *testing.T) {
resp, err := c.Products().StocksInSellersWarehouse(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &StocksInSellersWarehouseResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -493,8 +504,11 @@ func TestUpdatePrices(t *testing.T) {
resp, err := c.Products().UpdatePrices(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UpdatePricesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -566,8 +580,11 @@ func TestUpdateQuantityStockProducts(t *testing.T) {
resp, err := c.Products().UpdateQuantityStockProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UpdateQuantityStockProductsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -701,8 +718,11 @@ func TestCreateOrUpdateProduct(t *testing.T) {
resp, err := c.Products().CreateOrUpdateProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateOrUpdateProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -769,8 +789,11 @@ func TestGetListOfProducts(t *testing.T) {
resp, err := c.Products().GetListOfProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetListOfProductsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1016,8 +1039,11 @@ func TestGetProductsRatingBySKU(t *testing.T) {
resp, err := c.Products().GetProductsRatingBySKU(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductsRatingBySKUResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1084,8 +1110,11 @@ func TestGetProductImportStatus(t *testing.T) {
resp, err := c.Products().GetProductImportStatus(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductImportStatusResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1156,8 +1185,11 @@ func TestCreateProductByOzonID(t *testing.T) {
resp, err := c.Products().CreateProductByOzonID(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateProductByOzonIDResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1225,8 +1257,11 @@ func TestUpdateProductImages(t *testing.T) {
resp, err := c.Products().UpdateProductImages(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1294,8 +1329,11 @@ func TestCheckImageUploadingStatus(t *testing.T) {
resp, err := c.Products().CheckImageUploadingStatus(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1368,13 +1406,11 @@ func TestListProductsByIDs(t *testing.T) {
"source": "fbs"
}
],
"state": "",
"stocks": {
"coming": 0,
"present": 13,
"reserved": 0
},
"errors": [],
"updated_at": "2023-02-09T06:46:44.152Z",
"vat": "0.0",
"visible": true,
@@ -1410,7 +1446,6 @@ func TestListProductsByIDs(t *testing.T) {
"offer_id": "23",
"barcode": "",
"buybox_price": "",
"category_id": 90635895,
"created_at": "2021-05-26T20:26:07.565586Z",
"images": [],
"marketing_price": "",
@@ -1431,13 +1466,11 @@ func TestListProductsByIDs(t *testing.T) {
"source": "fbs"
}
],
"state": "",
"stocks": {
"coming": 0,
"present": 19,
"reserved": 0
},
"errors": [],
"updated_at": "2023-02-09T06:46:44.152Z",
"vat": "0.0",
"visible": true,
@@ -1490,8 +1523,11 @@ func TestListProductsByIDs(t *testing.T) {
resp, err := c.Products().ListProductsByIDs(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListProductsByIDsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1698,8 +1734,7 @@ func TestGetDescriptionOfProduct(t *testing.T) {
}
],
"complex_attributes": [],
"color_image": "",
"last_id": ""
"color_image": ""
}
],
"total": 1,
@@ -1725,8 +1760,11 @@ func TestGetDescriptionOfProduct(t *testing.T) {
resp, err := c.Products().GetDescriptionOfProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetDescriptionOfProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1784,8 +1822,11 @@ func TestGetProductDescription(t *testing.T) {
resp, err := c.Products().GetProductDescription(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductDescriptionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1848,8 +1889,11 @@ func TestGetProductRangeLimit(t *testing.T) {
resp, err := c.Products().GetProductRangeLimit(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductRangeLimitResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1905,8 +1949,11 @@ func TestChangeProductIDs(t *testing.T) {
resp, err := c.Products().ChangeProductIDs(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ChangeProductIDsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1952,8 +1999,11 @@ func TestArchiveProduct(t *testing.T) {
resp, err := c.Products().ArchiveProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ArchiveProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -1999,8 +2049,11 @@ func TestUnarchiveProduct(t *testing.T) {
resp, err := c.Products().UnarchiveProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ArchiveProductResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2056,8 +2109,11 @@ func TestRemoveProductWithoutSKU(t *testing.T) {
resp, err := c.Products().RemoveProductWithoutSKU(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RemoveProductWithoutSKUResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2134,8 +2190,11 @@ func TestListGeoRestrictions(t *testing.T) {
resp, err := c.Products().ListGeoRestrictions(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListGeoRestrictionsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2184,8 +2243,11 @@ func TestUploadActivationCodes(t *testing.T) {
resp, err := c.Products().UploadActivationCodes(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UploadActivationCodesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2233,8 +2295,11 @@ func TestStatusOfUploadingActivationCodes(t *testing.T) {
resp, err := c.Products().StatusOfUploadingActivationCodes(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &StatusOfUploadingActivationCodesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2347,8 +2412,11 @@ func TestGetProductPriceInfo(t *testing.T) {
resp, err := c.Products().GetProductPriceInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductPriceInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -2410,6 +2478,7 @@ func TestGetMarkdownInfo(t *testing.T) {
resp, err := c.Products().GetMarkdownInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
@@ -2417,6 +2486,8 @@ func TestGetMarkdownInfo(t *testing.T) {
}
if resp.StatusCode == http.StatusOK {
compareJsonResponse(t, test.response, &GetMarkdownInfoResponse{})
if len(resp.Items) > 0 {
if fmt.Sprint(resp.Items[0].DiscountedSKU) != test.params.DiscountedSKUs[0] {
t.Errorf("SKUs in reqest and resonse are not equal")
@@ -2466,11 +2537,14 @@ func TestSetDiscountOnMarkdownProduct(t *testing.T) {
resp, err := c.Products().SetDiscountOnMarkdownProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
compareJsonResponse(t, test.response, &SetDiscountOnMarkdownProductResponse{})
}
}
@@ -2518,12 +2592,15 @@ func TestNumberOfSubsToProductAvailability(t *testing.T) {
resp, err := c.Products().NumberOfSubsToProductAvailability(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
compareJsonResponse(t, test.response, &NumberOfSubsToProductAvailabilityResponse{})
if resp.StatusCode == http.StatusOK {
if len(resp.Result) != len(test.params.SKUS) {
t.Errorf("Length of SKUS in request and response are not equal")
@@ -2593,11 +2670,14 @@ func TestUpdateCharacteristics(t *testing.T) {
resp, err := c.Products().UpdateCharacteristics(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
compareJsonResponse(t, test.response, &UpdateCharacteristicsResponse{})
}
}
@@ -2634,7 +2714,7 @@ func TestGetRelatedSKUs(t *testing.T) {
"message": "test_message"
}
]
}`,
}`,
},
// Test No Client-Id or Api-Key
{
@@ -2655,12 +2735,15 @@ func TestGetRelatedSKUs(t *testing.T) {
resp, err := c.Products().GetRelatedSKUs(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
compareJsonResponse(t, test.response, &GetRelatedSKUsResponse{})
if len(resp.Errors)+len(resp.Items) != len(test.params.SKUs) {
t.Errorf("expected equal length of skus in request and response")
}

View File

@@ -52,7 +52,7 @@ type GetAvailablePromotionsResult struct {
ParticipatingProductsCount float64 `json:"participating_products_count"`
// Whether or not you participate in the promotion
IsParticipating bool `json:"participating"`
IsParticipating bool `json:"is_participating"`
// Indication that customers need a promo code to participate in the promotion
IsVoucherAction bool `json:"is_voucher_action"`
@@ -183,7 +183,7 @@ type PromotionProduct struct {
ActionPrice float64 `json:"action_price"`
// Maximum possible promotional product price
MaxActionType float64 `json:"max_action_type"`
MaxActionPrice float64 `json:"max_action_price"`
// Type of adding a product to the promotion: automatically or manually by the seller
AddMode string `json:"add_mode"`
@@ -225,7 +225,7 @@ type ProductsInPromotionResponse struct {
core.CommonResponse
// Method result
Result ProductsInPromotionResult `json:"reuslt"`
Result ProductsInPromotionResult `json:"result"`
}
type ProductsInPromotionResult struct {
@@ -387,7 +387,7 @@ type ProductsAvailableForHotSalePromotionResultProduct struct {
IsActive bool `json:"is_active"`
// Maximum possible promotional price of the product
MaxActionPrice float64 `json:"max_action_type"`
MaxActionPrice float64 `json:"max_action_price"`
// Minimum number of product units in a stock discount type promotion
MinStock float64 `json:"min_stock"`

View File

@@ -61,8 +61,11 @@ func TestGetAvailablePromotions(t *testing.T) {
resp, err := c.Promotions().GetAvailablePromotions(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetAvailablePromotionsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -131,8 +134,11 @@ func TestAddToPromotion(t *testing.T) {
resp, err := c.Promotions().AddToPromotion(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AddProductToPromotionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -208,8 +214,11 @@ func TestProductsAvailableForPromotion(t *testing.T) {
resp, err := c.Promotions().ProductsAvailableForPromotion(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductsAvailableForPromotionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -270,8 +279,11 @@ func TestProductsInPromotion(t *testing.T) {
resp, err := c.Promotions().ProductsInPromotion(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductsInPromotionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -323,8 +335,11 @@ func TestRemoveProduct(t *testing.T) {
resp, err := c.Promotions().RemoveProduct(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RemoveProductFromPromotionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -383,8 +398,11 @@ func TestListHotSalePromotions(t *testing.T) {
resp, err := c.Promotions().ListHotSalePromotions(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListHotSalePromotionsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -445,8 +463,11 @@ func TestProductsAvailableForHotSalePromotion(t *testing.T) {
resp, err := c.Promotions().ProductsAvailableForHotSalePromotion(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductsAvailableForHotSalePromotionResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -506,8 +527,11 @@ func TestAddProductsToHotSale(t *testing.T) {
resp, err := c.Promotions().AddProductsToHotSale(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductsToHotSaleResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -561,8 +585,11 @@ func TestRemoveProductsToHotSale(t *testing.T) {
resp, err := c.Promotions().RemoveProductsToHotSale(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ProductsToHotSaleResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -648,8 +675,11 @@ func TestListDiscountRequests(t *testing.T) {
resp, err := c.Promotions().ListDiscountRequests(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListDiscountRequestsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -712,8 +742,11 @@ func TestApproveDiscountRequest(t *testing.T) {
resp, err := c.Promotions().ApproveDiscountRequest(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DiscountRequestResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -776,8 +809,11 @@ func TestDeclineDiscountRequest(t *testing.T) {
resp, err := c.Promotions().DeclineDiscountRequest(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &DiscountRequestResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -17,6 +17,12 @@ type GetCurrentSellerRatingInfoResponse struct {
// Rating groups list
Groups []GetCurrentSellerRatingInfoGroup `json:"groups"`
// An indication that the penalty points balance is exceeded
PenaltyScoreExceeded bool `json:"penalty_score_exceeded"`
// An indication that you participate in the Premium program
Premium bool `json:"premium"`
}
type GetCurrentSellerRatingInfoGroup struct {
@@ -25,12 +31,6 @@ type GetCurrentSellerRatingInfoGroup struct {
// Ratings list
Items []GetCurrentSellerRatingInfoGroupItem `json:"items"`
// An indication that the penalty points balance is exceeded
PenaltyScoreExceeded bool `json:"penalty_score_exceeded"`
// An indication that you participate in the Premium program
Premium bool `json:"premium"`
}
type GetCurrentSellerRatingInfoGroupItem struct {

View File

@@ -63,8 +63,11 @@ func TestGetCurrentRatingInfo(t *testing.T) {
resp, err := c.Rating().GetCurrentSellerRatingInfo(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetCurrentSellerRatingInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -152,8 +155,11 @@ func TestGetRatingInfoForPeriod(t *testing.T) {
resp, err := c.Rating().GetSellerRatingInfoForPeriod(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetSellerRatingInfoPeriodResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -196,7 +196,7 @@ type GetFinancialResultResultCashflow struct {
Period GetFinancialResultResultCashflowPeriod `json:"period"`
// Sum of sold products prices
OrdersAmount float64 `json:"order_amount"`
OrdersAmount float64 `json:"orders_amount"`
// Sum of returned products prices
ReturnsAmount float64 `json:"returns_amount"`
@@ -613,6 +613,11 @@ type GetFBSStocksParams struct {
type GetFBSStocksResponse struct {
core.CommonResponse
// Method result
Result GetFBSStocksResult `json:"result"`
}
type GetFBSStocksResult struct {
// Unique report identifier
Code string `json:"code"`
}

View File

@@ -74,8 +74,11 @@ func TestGetList(t *testing.T) {
resp, err := c.Reports().GetList(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetReportsListResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -113,7 +116,7 @@ func TestGetReportDetails(t *testing.T) {
"file": "https://storage.yandexcloud.net/ozon.reports/95/c1/95c1ae93320294cb.csv",
"report_type": "seller_products",
"params": {},
"created_at": "2021-11-25T14:54:55.688260Z"
"created_at": "2021-11-25T14:54:55.68826Z"
}
}`,
},
@@ -136,8 +139,11 @@ func TestGetReportDetails(t *testing.T) {
resp, err := c.Reports().GetReportDetails(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetReportDetailsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -258,8 +264,7 @@ func TestGetFinancialReport(t *testing.T) {
},
"end_balance_amount": 0
}
},
"page_count": 15
}
}`,
},
// Test No Client-Id or Api-Key
@@ -281,8 +286,11 @@ func TestGetFinancialReport(t *testing.T) {
resp, err := c.Reports().GetFinancial(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFinancialReportResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -336,8 +344,11 @@ func TestGetProductsReport(t *testing.T) {
resp, err := c.Reports().GetProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetProductsReportResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -393,8 +404,11 @@ func TestGetReturnsReport(t *testing.T) {
resp, err := c.Reports().GetReturns(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetReturnsReportResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -452,8 +466,11 @@ func TestGetShipmentReport(t *testing.T) {
resp, err := c.Reports().GetShipment(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetShipmentReportResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -500,6 +517,7 @@ func TestIssueOnDiscountedProducts(t *testing.T) {
resp, err := c.Reports().IssueOnDiscountedProducts(ctx)
if err != nil {
t.Error(err)
continue
}
if resp.StatusCode != test.statusCode {
@@ -507,6 +525,7 @@ func TestIssueOnDiscountedProducts(t *testing.T) {
}
if resp.StatusCode == http.StatusOK {
compareJsonResponse(t, test.response, &IssueOnDiscountedProductsResponse{})
if resp.Code == "" {
t.Errorf("Code cannot be empty")
}
@@ -532,7 +551,9 @@ func TestGetFBSStocks(t *testing.T) {
WarehouseIds: []int64{123},
},
`{
"code": "d55f4517-8347-4e24-9d93-d6e736c1c07c"
"result": {
"code": "d55f4517-8347-4e24-9d93-d6e736c1c07c"
}
}`,
},
// Test No Client-Id or Api-Key
@@ -554,8 +575,11 @@ func TestGetFBSStocks(t *testing.T) {
resp, err := c.Reports().GetFBSStocks(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFBSStocksResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -161,7 +161,7 @@ type GetFBSReturnsResponse struct {
type GetFBSReturnResultReturn struct {
// Time of receiving the return from the customer
AcceptedFromCustomerAmount string `json:"accepted_from_customer_amount"`
AcceptedFromCustomerMoment string `json:"accepted_from_customer_moment"`
// Bottom barcode on the product label
ClearingId int64 `json:"clearing_id"`
@@ -383,6 +383,10 @@ type GetRFBSReturnParams struct {
type GetRFBSReturnResponse struct {
core.CommonResponse
Returns GetRFBSReturn `json:"returns"`
}
type GetRFBSReturn struct {
// List of available actions on the request
AvailableActions []GetRFBSReturnAction `json:"available_actions"`
@@ -749,10 +753,10 @@ func (c Returns) GetGiveoutBarcode(ctx context.Context) (*GetGiveoutBarcodeRespo
// The method returns a PNG file with the new barcode. Once the method is used,
// you won't be able to get a return shipment using the old barcodes.
// To get a new barcode in PDF format, use the /v1/return/giveout/get-pdf method
func (c Returns) ResetGiveoutBarcode(ctx context.Context) (*GetGiveoutBarcodeResponse, error) {
func (c Returns) ResetGiveoutBarcode(ctx context.Context) (*GetGiveoutResponse, error) {
url := "/v1/return/giveout/barcode-reset"
resp := &GetGiveoutBarcodeResponse{}
resp := &GetGiveoutResponse{}
response, err := c.client.Request(ctx, http.MethodPost, url, struct{}{}, resp, nil)
if err != nil {

View File

@@ -66,8 +66,11 @@ func TestGetFBOReturns(t *testing.T) {
resp, err := c.Returns().GetFBOReturns(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFBOReturnsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -165,8 +168,11 @@ func TestGetFBSReturns(t *testing.T) {
resp, err := c.Returns().GetFBSReturns(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetFBSReturnsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -259,8 +265,11 @@ func TestGetRFBSReturns(t *testing.T) {
resp, err := c.Returns().GetRFBSReturns(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetRFBSReturnsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -366,8 +375,11 @@ func TestGetRFBSReturn(t *testing.T) {
resp, err := c.Returns().GetRFBSReturn(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetRFBSReturnResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -413,8 +425,11 @@ func TestRejectRFBSReturn(t *testing.T) {
resp, err := c.Returns().RejectRFBSReturn(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RejectRFBSReturnResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -459,8 +474,11 @@ func TestCompensateRFBSreturn(t *testing.T) {
resp, err := c.Returns().CompensateRFBSReturn(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CompensateRFBSReturnResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -505,8 +523,11 @@ func TestApproveRFBSReturn(t *testing.T) {
resp, err := c.Returns().ApproveRFBSReturn(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ApproveRFBSReturnResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -550,8 +571,11 @@ func TestReceiveRFBSReturn(t *testing.T) {
resp, err := c.Returns().ReceiveRFBSReturn(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ReceiveRFBSReturnResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -596,8 +620,11 @@ func TestRefundRFBS(t *testing.T) {
resp, err := c.Returns().RefundRFBS(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RefundRFBSResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -638,8 +665,11 @@ func TestIsGiveoutEnabled(t *testing.T) {
resp, err := c.Returns().IsGiveoutEnabled(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &IsGiveoutEnabledResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -682,8 +712,11 @@ func TestGetGiveoutPDF(t *testing.T) {
resp, err := c.Returns().GetGiveoutPDF(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -726,8 +759,11 @@ func TestGetGiveoutPNG(t *testing.T) {
resp, err := c.Returns().GetGiveoutPNG(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -768,8 +804,11 @@ func TestGetGiveoutBarcode(t *testing.T) {
resp, err := c.Returns().GetGiveoutBarcode(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutBarcodeResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -812,8 +851,11 @@ func TestResetGiveoutBarcode(t *testing.T) {
resp, err := c.Returns().ResetGiveoutBarcode(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -871,8 +913,11 @@ func TestGetGiveoutList(t *testing.T) {
resp, err := c.Returns().GetGiveoutList(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutListResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -929,8 +974,11 @@ func TestGetGiveoutInfo(t *testing.T) {
resp, err := c.Returns().GetGiveoutInfo(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetGiveoutInfoResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

View File

@@ -24,7 +24,7 @@ type ListCompetitorsResponse struct {
core.CommonResponse
// List of competitors
Competitors []ListCompetitorsCompetitor `json:"competitors"`
Competitor []ListCompetitorsCompetitor `json:"competitor"`
// Total number of competitors
Total int32 `json:"total"`
@@ -32,10 +32,10 @@ type ListCompetitorsResponse struct {
type ListCompetitorsCompetitor struct {
// Competitor's name
Name string `json:"name"`
Name string `json:"competitor_name"`
// Competitor identifier
Id int64 `json:"id"`
Id int64 `json:"competitor_id"`
}
// Method for getting a list of competitors—sellers with similar products in other online stores and marketplaces
@@ -74,10 +74,10 @@ type ListStrategiesResponse struct {
type ListStrategiesStrategy struct {
// Strategy identifier
Id string `json:"id"`
Id string `json:"strategy_id"`
// Strategy name
Name string `json:"name"`
Name string `json:"strategy_name"`
// Strategy type
Type StrategyType `json:"type"`

View File

@@ -54,8 +54,11 @@ func TestListCompetitors(t *testing.T) {
resp, err := c.Strategies().ListCompetitors(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListCompetitorsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -114,8 +117,11 @@ func TestListStrategies(t *testing.T) {
resp, err := c.Strategies().List(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListStrategiesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -158,7 +164,7 @@ func TestCreateStrategy(t *testing.T) {
},
`{
"result": {
"id": "4f3a1d4c-5833-4f04-b69b-495cbc1f6f1c"
"strategy_id": "4f3a1d4c-5833-4f04-b69b-495cbc1f6f1c"
}
}`,
},
@@ -181,8 +187,11 @@ func TestCreateStrategy(t *testing.T) {
resp, err := c.Strategies().Create(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &CreateStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -207,7 +216,7 @@ func TestInfoStrategy(t *testing.T) {
},
`{
"result": {
"strategy_name": "test1",
"name": "test1",
"enabled": true,
"update_type": "strategyItemsListChanged",
"type": "COMP_PRICE",
@@ -243,8 +252,11 @@ func TestInfoStrategy(t *testing.T) {
resp, err := c.Strategies().Info(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &InfoStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -311,8 +323,11 @@ func TestUpdateStrategy(t *testing.T) {
resp, err := c.Strategies().Update(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &UpdateStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -361,8 +376,11 @@ func TestAddProductsToStrategy(t *testing.T) {
resp, err := c.Strategies().AddProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &AddProductsToStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -415,8 +433,11 @@ func TestGetStrategiesByProductIds(t *testing.T) {
resp, err := c.Strategies().GetByProductIds(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetStrategiesByProductIdsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -478,8 +499,11 @@ func TestListProductsInStrategy(t *testing.T) {
resp, err := c.Strategies().ListProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ListProductsInStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -532,8 +556,11 @@ func TestGetCompetitorPrice(t *testing.T) {
resp, err := c.Strategies().GetCompetitorPrice(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetCompetitorPriceResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -581,8 +608,11 @@ func TestRemoveProductsFromStrategy(t *testing.T) {
resp, err := c.Strategies().RemoveProducts(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RemoveProductsFromStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -627,8 +657,11 @@ func TestChangeStrategyStatus(t *testing.T) {
resp, err := c.Strategies().ChangeStatus(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &ChangeStatusToResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -672,8 +705,11 @@ func TestRemoveStrategy(t *testing.T) {
resp, err := c.Strategies().Remove(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &RemoveStrategyResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}

83
ozon/utils.go Normal file
View File

@@ -0,0 +1,83 @@
package ozon
import (
"bytes"
"encoding/json"
"fmt"
"reflect"
"strings"
"testing"
)
func compareJsonResponse(t *testing.T, expectedJSON string, response interface{}) {
err := json.Unmarshal([]byte(expectedJSON), response)
if err != nil {
t.Errorf("got error: %s", err)
return
}
after, err := json.Marshal(response)
if err != nil {
t.Errorf("got error: %s", err)
return
}
var j1, j2 map[string]interface{}
if err := json.NewDecoder(strings.NewReader(expectedJSON)).Decode(&j1); err != nil {
t.Errorf("got error: %s", err)
return
}
if err := json.NewDecoder(bytes.NewReader(after)).Decode(&j2); err != nil {
t.Errorf("got error: %s", err)
return
}
if err := compareJson(j1, j2, ""); err != nil {
t.Errorf("jsons are not equal: %s", err)
return
}
}
func compareJson(expected interface{}, actual interface{}, prefix string) error {
if expected == nil {
return nil
}
expectedType := reflect.TypeOf(expected).Kind()
actualType := reflect.TypeOf(actual).Kind()
if expectedType != actualType {
return fmt.Errorf("type for key %s is different: expected: %s, \ngot: %s", prefix, expectedType, actualType)
}
switch expected.(type) {
case map[string]interface{}:
expectedMap := expected.(map[string]interface{})
actualMap := actual.(map[string]interface{})
for k, v := range expectedMap {
key := fmt.Sprintf("%s.%s", prefix, k)
actualValue, ok := actualMap[k]
if !ok {
return fmt.Errorf("key %s is absent", key)
}
if err := compareJson(v, actualValue, key); err != nil {
return err
}
}
case []interface{}:
expectedSlice := expected.([]interface{})
actualSlice := actual.([]interface{})
for i := range expectedSlice {
key := fmt.Sprintf("%s.%d", prefix, i)
if err := compareJson(expectedSlice[i], actualSlice[i], key); err != nil {
return err
}
}
default:
if !reflect.DeepEqual(expected, actual) {
return fmt.Errorf("value for key %s is different: expected: %s, \ngot: %s", prefix, expected, actual)
}
}
return nil
}

View File

@@ -63,8 +63,11 @@ func TestGetListOfWarehouses(t *testing.T) {
resp, err := c.Warehouses().GetListOfWarehouses(ctx)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetListOfWarehousesResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}
@@ -139,8 +142,11 @@ func TestGetListOfDeliveryMethods(t *testing.T) {
resp, err := c.Warehouses().GetListOfDeliveryMethods(ctx, test.params)
if err != nil {
t.Error(err)
continue
}
compareJsonResponse(t, test.response, &GetListOfDeliveryMethodsResponse{})
if resp.StatusCode != test.statusCode {
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
}