This repository has been archived by the owner on Jun 29, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
testvars.go
115 lines (91 loc) · 3.41 KB
/
testvars.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package membership
import (
"database/sql/driver"
"regexp"
"time"
"github.com/factly/mande-server/test/product"
"github.com/DATA-DOG/go-sqlmock"
"github.com/factly/mande-server/test"
"github.com/factly/mande-server/test/catalog"
"github.com/factly/mande-server/test/currency"
"github.com/factly/mande-server/test/payment"
"github.com/factly/mande-server/test/plan"
"github.com/gavv/httpexpect"
)
var headers = map[string]string{
"X-User": "1",
"X-Organisation": "1",
}
var Membership map[string]interface{} = map[string]interface{}{
"status": "Test Status",
"user_id": 1,
"payment_id": 1,
"plan_id": 1,
"razorpay_order_id": "",
}
var requestBody map[string]interface{} = map[string]interface{}{
"plan_id": 1,
}
var invalidMembership map[string]interface{} = map[string]interface{}{
"plan": 1,
}
var membershiplist []map[string]interface{} = []map[string]interface{}{
{
"status": "Test Status 1",
"user_id": 1,
"payment_id": 1,
"plan_id": 1,
"razorpay_order_id": "",
},
{
"status": "Test Status 2",
"user_id": 1,
"payment_id": 1,
"plan_id": 1,
"razorpay_order_id": "",
},
}
var MembershipCols []string = []string{"id", "created_at", "updated_at", "deleted_at", "created_by_id", "updated_by_id", "status", "user_id", "payment_id", "plan_id", "razorpay_order_id"}
var selectQuery string = regexp.QuoteMeta(`SELECT * FROM "dp_membership"`)
var countQuery string = regexp.QuoteMeta(`SELECT count(1) FROM "dp_membership"`)
const basePath string = "/memberships"
const path string = "/memberships/{membership_id}"
func MembershipSelectMock(mock sqlmock.Sqlmock, args ...driver.Value) {
mock.ExpectQuery(selectQuery).
WithArgs(args...).
WillReturnRows(sqlmock.NewRows(MembershipCols).
AddRow(1, time.Now(), time.Now(), nil, 1, 1, Membership["status"], Membership["user_id"], Membership["payment_id"], Membership["plan_id"], Membership["razorpay_order_id"]))
}
func createMock(mock sqlmock.Sqlmock) {
plan.PlanSelectMock(mock)
mock.ExpectQuery(`INSERT INTO "dp_membership"`).
WithArgs(test.AnyTime{}, test.AnyTime{}, nil, 1, 1, "created", 1, nil, Membership["plan_id"], "").
WillReturnRows(sqlmock.NewRows([]string{"id"}).AddRow(1))
mock.ExpectQuery(regexp.QuoteMeta(`SELECT * FROM "dp_currency"`)).
WillReturnRows(sqlmock.NewRows(currency.CurrencyCols).
AddRow(1, time.Now(), time.Now(), nil, 1, 1, currency.Currency["iso_code"], currency.Currency["name"]))
mock.ExpectExec(regexp.QuoteMeta(`UPDATE "dp_membership" SET`)).
WithArgs(1, test.AnyTime{}, test.AnyTime{}, 1, 1, "processing", 1, 1, test.RazorpayOrder["id"], 1).
WillReturnResult(sqlmock.NewResult(1, 1))
postCreateSelectMock(mock)
}
func postCreateSelectMock(mock sqlmock.Sqlmock) {
MembershipSelectMock(mock)
plan.PlanSelectMock(mock)
mock.ExpectQuery(regexp.QuoteMeta(`SELECT * FROM "dp_plan_catalog"`)).
WillReturnRows(sqlmock.NewRows([]string{"plan_id", "catalog_id"}).
AddRow(1, 1))
catalog.CatalogSelectMock(mock)
mock.ExpectQuery(regexp.QuoteMeta(`SELECT * FROM "dp_catalog_product"`)).
WillReturnRows(sqlmock.NewRows([]string{"product_id", "catalog_id"}).
AddRow(1, 1))
product.ProductSelectMock(mock)
}
func validateAssociations(result *httpexpect.Object) {
result.Value("plan").
Object().
ContainsMap(plan.PlanReceive)
result.Value("payment").
Object().
ContainsMap(payment.Payment)
}