From b394cd36f837ede7d3a1f09628b1dec47c2f2bae Mon Sep 17 00:00:00 2001 From: Patrick Peng Sun Date: Sun, 28 May 2017 23:38:25 +1000 Subject: [PATCH] setCurrentState do not have to be returning duplicate state. --- chatState.go | 16 +++++++++++++--- chatState_test.go | 12 +++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/chatState.go b/chatState.go index 66e3fd3..1ff70a4 100644 --- a/chatState.go +++ b/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 +} diff --git a/chatState_test.go b/chatState_test.go index 78dc237..1708826 100644 --- a/chatState_test.go +++ b/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 }