package container

import (
	"fmt"
	"github.com/go-xorm/xorm"
	"testing"
)

func TestDefaultTransactionHandler_New(t *testing.T) {

	xormSession := &xorm.Session{}
	defaultTransactionHandler, err := NewDefaultTransactionHandler(xormSession)
	if err != nil {
		t.Fatalf("意外错误:%s", err.Error())
	}
	if defaultTransactionHandler == nil {
		t.Fatalf("创建失败!")
	}
	if defaultTransactionHandler.session != xormSession {
		t.Fatalf("会话设置错误")
	}
}

func TestDefaultTransactionHandler_New_NullSession(t *testing.T) {

	_, err := NewDefaultTransactionHandler(nil)
	if err == nil {
		t.Fatalf("意外的没有错误!")
	}
	if err.Error() != fmt.Sprintf("会话不能为空!") {
		t.Fatalf("意外错误:%s", err.Error())
	}
}

func TestDefaultTransactionHandler_Session(t *testing.T) {

	handler, err := NewDefaultTransactionHandler(&xorm.Session{})
	if err != nil {
		t.Fatalf("意外错误:%s", err.Error())
	}
	xormSession := &xorm.Session{}
	handler.session = xormSession
	if handler.Session() != xormSession {
		t.Fatalf("获取会话错误!")
	}
}
