소스 검색

setCurrentState do not have to be returning duplicate state.

master
Patrick Peng Sun 9 년 전
부모
커밋
b394cd36f8
2개의 변경된 파일20개의 추가작업 그리고 8개의 파일을 삭제
  1. +13
    -3
      chatState.go
  2. +7
    -5
      chatState_test.go

+ 13
- 3
chatState.go 파일 보기

return return
} }


func setCurrentState(openID, procedure string, state chatState) (newState chatState, err error) {
func setCurrentState(openID, procedure string, state chatState) (err error) {
state.OpenID = openID state.OpenID = openID
state.Procedure = procedure state.Procedure = procedure


log.Println(err) log.Println(err)
return return
} }
newState = state
return return
} }


//skip saving sate //skip saving sate
return return
} }
_, err = setCurrentState(openID, procedure, state)
err = setCurrentState(openID, procedure, state)
return return
} }

func isEndingState(state chatState) bool {
if isExpired(state.Expire) || state.Name == "" {
return true
}

if state.Name == "delete" {
return true
}
return false
}

+ 7
- 5
chatState_test.go 파일 보기

s.response = "somexml less than 2018bytes" s.response = "somexml less than 2018bytes"


//save //save
n, err := setCurrentState(openID, procedure, s)
err := setCurrentState(openID, procedure, s)
AssertEqual(t, err, nil, "save state should be successful") AssertEqual(t, err, nil, "save state should be successful")


//read out //read out
m, _ := getCurrentState(openID, procedure) m, _ := getCurrentState(openID, procedure)


//compare //compare
AssertEqual(t, m.Name, n.Name, "Name should be equal")
AssertEqual(t, m.Expire, n.Expire, "Expire should be equal")
AssertEqual(t, m.Name, s.Name, "Name should be equal")
AssertEqual(t, m.Expire, s.Expire, "Expire should be equal")
AssertEqual(t, m.Save["txt"], s.Save["txt"], "Message[txt] should be equal") AssertEqual(t, m.Save["txt"], s.Save["txt"], "Message[txt] should be equal")
AssertEqual(t, m.Save["icon"], s.Save["icon"], "Message[icon] should be equal") AssertEqual(t, m.Save["icon"], s.Save["icon"], "Message[icon] should be equal")
AssertEqual(t, m.OpenID, openID, "openID should be "+openID) AssertEqual(t, m.OpenID, openID, "openID should be "+openID)
AssertEqual(t, m.response, "", "response should be empty") AssertEqual(t, m.response, "", "response should be empty")
AssertEqual(t, m.Procedure, procedure, "procedure should be "+procedure) AssertEqual(t, m.Procedure, procedure, "procedure should be "+procedure)
AssertEqual(t, m.Save["txt"], n.Save["txt"], "Message[txt] should be equal")
AssertEqual(t, m.Save["icon"], n.Save["icon"], "Message[icon] should be equal")
AssertEqual(t, m.Save["txt"], s.Save["txt"], "Message[txt] should be equal")
AssertEqual(t, m.Save["icon"], s.Save["icon"], "Message[icon] should be equal")


err = deleteChatState(openID, procedure) err = deleteChatState(openID, procedure)
AssertEqual(t, err, nil, "delete chatState should be good") AssertEqual(t, err, nil, "delete chatState should be good")
AssertEqual(t, s != nil, true, "TestDummy should return error") AssertEqual(t, s != nil, true, "TestDummy should return error")
s = startProcedure(openID, "TestEcho") s = startProcedure(openID, "TestEcho")
AssertEqual(t, s, nil, "TestEqual should return success") AssertEqual(t, s, nil, "TestEqual should return success")
//read it back
//TODO read it back and check it
} }

Loading…
취소
저장