Przeglądaj źródła

setCurrentState do not have to be returning duplicate state.

master
Patrick Peng Sun 8 lat temu
rodzic
commit
b394cd36f8
2 zmienionych plików z 20 dodań i 8 usunięć
  1. +13
    -3
      chatState.go
  2. +7
    -5
      chatState_test.go

+ 13
- 3
chatState.go Wyświetl plik

@@ -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 Wyświetl plik

@@ -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
}

Ładowanie…
Anuluj
Zapisz