tests for close and add IsClosed() method (#659)

This commit is contained in:
Lunny Xiao 2017-07-26 22:25:23 +08:00 committed by GitHub
parent a5a917d477
commit 7c2d924794
2 changed files with 28 additions and 1 deletions

View File

@ -93,11 +93,15 @@ func (session *Session) Close() {
}
session.Tx = nil
session.stmtCache = nil
session.Init()
session.db = nil
}
}
// IsClosed returns if session is closed
func (session *Session) IsClosed() bool {
return session.db == nil
}
func (session *Session) resetStatement() {
if session.AutoResetStatement {
session.Statement.Init()

23
session_test.go Normal file
View File

@ -0,0 +1,23 @@
// Copyright 2017 The Xorm Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package xorm
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestClose(t *testing.T) {
assert.NoError(t, prepareEngine())
sess1 := testEngine.NewSession()
sess1.Close()
assert.True(t, sess1.IsClosed())
sess2 := testEngine.Where("a = ?", 1)
sess2.Close()
assert.True(t, sess2.IsClosed())
}