package test

//func (suite *NovuSuite) TestBulkEvents() {
//	assert := suite.Assert()
//	res, err := novuhandler.Get().CreateWorkflow(forms.Workflow{
//		WorkFlowName:      "test delay wxw 09-24",
//		WorkFlowID:        "www",
//		TriggerID:         "test-delay-wxw",
//		CreatorID:         "test-wxw",
//		NotificationGroup: "novu-test",
//	})
//	assert.Nil(err)
//	SubscriberId := "unittest_" + uuid.NewString()
//	result, checkResult := novuhandler.Get().GetSubscriber(SubscriberId)
//	assert.False(checkResult, result)
//
//	input := []map[string]string{{novuhandler.CreateSubscriberSubscriberId: SubscriberId}}
//
//	err = novuhandler.Get().CreateSubscribers(input)
//	assert.Nil(err)
//
//	var outPut = novuhandler.EventResponse{}
//	var inPut = novuhandler.EventRequest{}
//	inPut.Events = append(inPut.Events, novuhandler.Event{
//		Name: res.TriggerID,
//		To: novuhandler.EventTo{
//			SubscriberId: SubscriberId,
//		},
//
//		Payload: map[string]interface{}{"param": "ssss", "__source": "test-workflow", "isSendNow": "<REPLACE_WITH_DATA>", "sendAt": timeutils.GetNow().Add(31 * time.Second).Format("2006-01-02T15:04:05.000Z0700")},
//	})
//
//	err = novuhandler.GetClient().Request("POST", "/v1/events/trigger/bulk", nil, inPut, &outPut)
//	log.Info("outPut", zap.Any("outPut", outPut), zap.Any("inPut", inPut))
//	assert.Nil(err)
//
//}

//	func (suite *NovuSuite) TestBulkEvents2() {
//		assert := suite.Assert()
//		var outPut = novuhandler.EventResponse{}
//		var inPut = novuhandler.EventRequest{}
//		inPut.Events = append(inPut.Events, novuhandler.Event{
//			Name: "test-delay-wxw-09-23-8E2pHNhMJ",
//			To: novuhandler.EventTo{
//				SubscriberId: "wangxiaowu",
//			},
//
//			Payload: map[string]interface{}{"param": "ssss", "__source": "test-workflow", "isSendNow": "<REPLACE_WITH_DATA>", "sendAt": timeutils.GetNow().Add(31 * time.Second).Format("2006-01-02T15:04:05.000Z0700")},
//		})
//
//		err := novuhandler.GetClient().Request("POST", "/v1/events/trigger/bulk", nil, inPut, &outPut)
//		log.Info("outPut", zap.Any("outPut", outPut), zap.Any("inPut", inPut))
//		assert.Nil(err)
//	}
//
//	func (suite *NovuSuite) TestBroadcastBulkEvents() {
//		assert := suite.Assert()
//
//		_, err := novuhandler.Get().BroadcastTriggerEvent(forms.Trigger{
//			TriggerID:    "test",
//			WorkFlowID:   "66179f06c739cc3d9819ce7a",
//			ScheduleTime: timeutils.GetNow().Add(60 * time.Second),
//			Operator:     "test_wxw",
//		})
//		assert.Nil(err)
//
// }
//type T struct {
//	Data struct {
//		Id  string `json:"_id"`
//		Key string `json:"key"`
//	} `json:"data"`
//}

func (suite *NovuSuite) TestCreateTopics() {
	//assert := suite.Assert()
	//
	//topics := map[string]string{
	//	constant.UserRoleOwner:           constant.RoleOrgOwner,
	//	constant.UserRoleMember:          constant.RoleOrgMember,
	//	constant.UserRoleBillingAdmin:    constant.RoleOrgBillingAdmin,
	//	constant.UserRoleAuditAdmin:      constant.RoleOrgAuditAdmin,
	//	constant.UserRoleImpersonated:    constant.RoleOrgImpersonated,
	//	constant.UserRoleProjectOwner:    constant.RoleProjectOwner,
	//	constant.UserRoleProjectDev:      constant.RoleProjectDev,
	//	constant.UserRoleProjectReadOnly: constant.RoleProjectReadOnly,
	//}
	//var resp interface{}
	//for k, v := range topics {
	//	input := map[string]string{"key": k, "name": v}
	//	err := novuhandler.GetClient().Request("POST", "/v1/topics", nil, input, &resp)
	//	assert.Nil(err, resp)
	//	pp.Print(resp)
	//}
	//apiPath := fmt.Sprintf("/v1/topics/%s/subscribers", constant.UserRoleOwner)
	//
	//err := novuhandler.GetClient().Request("POST", "/v1/topics", nil, input, &resp)

}

//
//func (suite *NovuSuite) TestBulkEventsByRoles() {
//	assert := suite.Assert()
//	res, err := novuhandler.Get().CreateWorkflow(forms.Workflow{
//		WorkFlowName:      "test delay wxw 09-24",
//		WorkFlowID:        "www",
//		TriggerID:         "test-delay-wxw",
//		CreatorID:         "test-wxw",
//		NotificationGroup: "novu-test",
//	})
//	assert.Nil(err)
//	SubscriberId := "unittest_" + uuid.NewString()
//	result, checkResult := novuhandler.Get().GetSubscriber(SubscriberId)
//	assert.False(checkResult, result)
//
//	input := []map[string]string{{novuhandler.CreateSubscriberSubscriberId: SubscriberId}}
//
//	err = novuhandler.Get().CreateSubscribers(input)
//	assert.Nil(err)
//
//	var outPut = novuhandler.EventResponse{}
//	var inPut = novuhandler.EventRequest{}
//	inPut.Events = append(inPut.Events, novuhandler.Event{
//		Name: res.TriggerID,
//		To: novuhandler.EventTo{
//			SubscriberId: SubscriberId,
//		},
//
//		Payload: map[string]interface{}{"param": "ssss", "__source": "test-workflow", "isSendNow": "<REPLACE_WITH_DATA>", "sendAt": timeutils.GetNow().Add(31 * time.Second).Format("2006-01-02T15:04:05.000Z0700")},
//	})
//
//	err = novuhandler.GetClient().Request("POST", "/v1/events/trigger/bulk", nil, inPut, &outPut)
//	log.Info("outPut", zap.Any("outPut", outPut), zap.Any("inPut", inPut))
//	assert.Nil(err)
//
//}
