package imitater

import (
	"log"
	"testing"

	"474420502.top/eson/curl2info"
)

func TestExecute(t *testing.T) {
	curl := `curl 'https://appgrowing.cn/' -H 'authority: appgrowing.cn' -H 'cache-control: max-age=0' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: zh' -H 'cookie: _ga=GA1.2.1371058419.1533104518; _gid=GA1.2.896241740.1543307916; _gat_gtag_UA_4002880_19=1' -H 'if-none-match: W/"5bf7a0a9-ca6"' -H 'if-modified-since: Fri, 23 Nov 2018 06:39:37 GMT' --compressed`

	u, err := curl2info.ParseRawCURL(curl)
	if err != nil {
		panic(err)
	}

	resp, err := u.CreateWorkflow(nil).Execute()
	if err != nil {
		t.Error("TestExecute")
	} else {
		log.Println(resp.Content())
	}
}

type Toutiao struct {
	Task
}

func (tt *Toutiao) Execute(data interface{}) ITask {
	resp, err := tt.Request()
	log.Println(resp.Content()[0:20], err)
	return nil
}

func TestExecutePlan(t *testing.T) {
	Register("toutiao", &Toutiao{})

	person := NewPerson()
	person.Config("test.yaml")
	person.Execute()

	t.Error("")
	// for _, task := range person.Tasks.GetLoopValues() {
	// 	task.GetValue().(*Task).ExecuteOnPlan()
	// }

}