ソースを参照

save meeting entity test.. pass

master
Patrick Peng Sun 8年前
コミット
d7905d6b0f
2個のファイルの変更83行の追加2行の削除
  1. +54
    -2
      crmMeeting_test.go
  2. +29
    -0
      crmdMeeting.go

+ 54
- 2
crmMeeting_test.go ファイルの表示

@@ -1,7 +1,10 @@
package main

import "testing"
import "encoding/json"
import (
"encoding/json"
"testing"
"time"
)

func TestDecodeMeetingJson(t *testing.T) {
msg := `
@@ -177,3 +180,52 @@ func TestDecodeMeetingJson(t *testing.T) {
AssertEqual(t, e.CoverName, "covername", "")

}

func TestCreateMeeting(t *testing.T) {

lead := crmdLead{}
lead.FirstName = "ff" + RandStringRunes(10)
lead.LastName = "ll" + RandStringRunes(10)
lead.Status = "testonly"
lead.Password = "apa"
lead.ForceDuplicate = true
newLead, err := lead.Save()
AssertEqual(t, err, nil, "create temp lead for meeting test should be ok")
AssertEqual(t, newLead.ID != "", true, "temp new lead should have ID")

meeting := crmdMeeting{}
meeting.Name = "至高无上的会议"
meeting.DateStart = time.Now().Format(getCrmTimeLayout())
meeting.Duration = 3600 //1hr
meeting.Description = "一些无聊的文字,凑在一起"
meeting.ParentID = newLead.ID
meeting.ParentType = "Lead"

newMeeting, err := meeting.save()
AssertEqual(t, err, nil, "create meeting should be successful")
AssertEqual(t, newMeeting.ID != "", true, "newly created meeting should have ID")

AssertEqual(t, newMeeting.Name, meeting.Name, "meeting name test fail")
AssertEqual(t, newMeeting.DateStart, meeting.DateStart, "meeting dateSTart test fail")
AssertEqual(t, newMeeting.Duration, meeting.Duration, "meeting duration test fail")
AssertEqual(t, newMeeting.Description, meeting.Description, "meeting Description test fail")
AssertEqual(t, newMeeting.ParentID, meeting.ParentID, "meeting parentID test fail")
AssertEqual(t, newMeeting.ParentType, meeting.ParentType, "meeting ParentType test fail")
AssertEqual(t, newMeeting.Status, "Planned", "meeting status is planned")

AssertEqual(t, newMeeting.ParentName, "", "parentName not expected to be updated")
entity, err := crmFindEntityByID("Meeting", newMeeting.ID)
AssertEqual(t, err, nil, "re read saved meeting should be ok")
anotherRead, ok := entity.(crmdMeeting)
AssertEqual(t, ok, true, "reading entity shold be crmdMeeting")
AssertEqual(t, anotherRead.ParentName, newLead.Name, "")

deleted, err := crmDeleteEntity("Meeting", newMeeting.ID)
AssertEqual(t, err, nil, "delet testmeeting should be successful")
AssertEqual(t, deleted, true, "temp meeting should have been deleted")

deleted, err = crmDeleteEntity("Lead", newLead.ID)
AssertEqual(t, err, nil, "delet tmp lead should be successful")
AssertEqual(t, deleted, true, "temp lead should have been deleted")

}

+ 29
- 0
crmdMeeting.go ファイルの表示

@@ -1,5 +1,9 @@
package main

import (
"encoding/json"
)

type crmdMeetingAttendance struct {
Status string `json:"status,omitempty"`
}
@@ -38,3 +42,28 @@ type crmdMeeting struct {
CoverID string `json:"coverId,omitempty"`
CoverName string `json:"coverName,omitempty"`
}

func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) {
jsonB, err := json.Marshal(m)
if err != nil {
return
}

if m.ID == "" { //create
entity, e := crmCreateEntity("Meeting", jsonB)
if e != nil {
err = e
return
}
newMeeting = entity.(crmdMeeting)

} else { //patch
entity, e := crmUpdateEntity("Meeting", m.ID, jsonB)
if e != nil {
err = e
return
}
newMeeting = entity.(crmdMeeting)
}
return
}

読み込み中…
キャンセル
保存