Просмотр исходного кода

save meeting entity test.. pass

master
Patrick Peng Sun 8 лет назад
Родитель
Сommit
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
}

Загрузка…
Отмена
Сохранить