ソースを参照

setCurrentState do not have to be returning duplicate state.

master
Patrick Peng Sun 8年前
コミット
b394cd36f8
2個のファイルの変更20行の追加8行の削除
  1. +13
    -3
      chatState.go
  2. +7
    -5
      chatState_test.go

+ 13
- 3
chatState.go ファイルの表示

@@ -60,7 +60,7 @@ func sanityCheckState(openID, procedure string, result chatState) (err error) {
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.Procedure = procedure

@@ -75,7 +75,6 @@ func setCurrentState(openID, procedure string, state chatState) (newState chatSt
log.Println(err)
return
}
newState = state
return
}

@@ -101,6 +100,17 @@ func saveChatState(openID, procedure string, state chatState) (err error) {
//skip saving sate
return
}
_, err = setCurrentState(openID, procedure, state)
err = setCurrentState(openID, procedure, state)
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 ファイルの表示

@@ -18,22 +18,22 @@ func TestChatState(t *testing.T) {
s.response = "somexml less than 2018bytes"

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

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

//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["icon"], s.Save["icon"], "Message[icon] should be equal")
AssertEqual(t, m.OpenID, openID, "openID should be "+openID)
AssertEqual(t, m.response, "", "response should be empty")
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)
AssertEqual(t, err, nil, "delete chatState should be good")
@@ -46,4 +46,6 @@ func TestStartProcedure(t *testing.T) {
AssertEqual(t, s != nil, true, "TestDummy should return error")
s = startProcedure(openID, "TestEcho")
AssertEqual(t, s, nil, "TestEqual should return success")
//read it back
//TODO read it back and check it
}

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