Browse Source

setCurrentState do not have to be returning duplicate state.

master
Patrick Peng Sun 8 years ago
parent
commit
b394cd36f8
2 changed files with 20 additions and 8 deletions
  1. +13
    -3
      chatState.go
  2. +7
    -5
      chatState_test.go

+ 13
- 3
chatState.go View File

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 View File

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…
Cancel
Save