|
- package main
-
- import (
- "encoding/json"
- "log"
- "testing"
- "time"
- )
-
- func TestGetEntity(t *testing.T) {
- SetupConfig()
- leadID := "595071f8450974b72"
- entity, err := crmGetEntity("Lead", leadID)
- AssertEqual(t, err, nil, "get entity should return nil error")
-
- lead, ok := entity.(crmdLead)
- AssertEqual(t, ok, true, "type assertion should be true")
- AssertEqual(t, leadID, lead.ID, "lead id mismatch")
-
- lead1 := entity.(crmdLead)
- AssertEqual(t, lead.ID, lead1.ID, "type casting should work")
- }
-
- func TestCreateEntity(t *testing.T) {
- SetupConfig()
- e := crmdLead{}
- e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
- e.LastName = "ll"
- e.Password = "pp"
- e.Status = "New"
- b, _ := json.Marshal(e)
- log.Println(string(b))
- entity, _ := createEntity("Lead", b)
- lead1 := entity.(crmdLead)
- log.Println(lead1)
-
- lead2, _ := crmGetLead(lead1.ID)
- AssertEqual(t, lead2.ID, lead1.ID, "lead id should be equal")
-
- e.Password = "newpass"
- b, _ = json.Marshal(e)
- entity, _ = updateEntity("Lead", lead2.ID, b)
- lead3 := entity.(crmdLead)
- log.Println(lead3)
- AssertEqual(t, lead3.ID, lead1.ID, "should be same lead")
- AssertEqual(t, lead3.Password, "newpass", "password should have been changed")
- AssertEqual(t, lead1.Password, "pp", "old password should be PP")
-
- //delete this test lead.
- deleted, _ := deleteEntity("Lead", lead1.ID)
- AssertEqual(t, deleted, true, "record should be deleted")
-
- }
-
- func TestCreateDuplicate(t *testing.T) {
- SetupConfig()
- e := crmdLead{}
- e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
- e.LastName = "ll"
- e.Password = "pp"
- e.Status = "New"
- e.WechatHitxyID = "someopenid"
- b, _ := json.Marshal(e)
- entity, _ := createEntity("Lead", b)
- lead1 := entity.(crmdLead)
- entity, _ = crmGetEntity("Lead", lead1.ID)
- lead2 := entity.(crmdLead)
- AssertEqual(t, lead1.ID, lead2.ID, "lead should have been created successfully")
-
- //try to create it again
- entity, err := createEntity("Lead", b)
- AssertEqual(t, err == nil, false, "should have error for duplicates")
- AssertEqual(t, isErrIndicateDuplicate(err), true, "this should be duplicate error")
- }
-
- func TestCreateEntityServerNotFound(t *testing.T) {
- SetupConfig()
- crmSite = "https://not-exist.hitxy.org.au/" //
-
- e := crmdLead{}
- e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
- e.LastName = "ll"
- e.Password = "pp"
- e.Status = "New"
- e.WechatHitxyID = "someopenid"
- b, _ := json.Marshal(e)
- entity, err := createEntity("Lead", b)
- AssertEqual(t, isErrIndicateDuplicate(err), false, "this should not be a duplicate error")
- AssertEqual(t, entity, nil, "should not be able to create entity, it should be nil")
-
- }
|