Procházet zdrojové kódy

setCurrentState do not have to be returning duplicate state.

master
Patrick Peng Sun před 8 roky
rodič
revize
b394cd36f8
2 změnil soubory, kde provedl 20 přidání a 8 odebrání
  1. +13
    -3
      chatState.go
  2. +7
    -5
      chatState_test.go

+ 13
- 3
chatState.go Zobrazit soubor

@@ -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 Zobrazit soubor

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

Načítá se…
Zrušit
Uložit