Skip to content

Commit

Permalink
feat: optimize test (#559)
Browse files Browse the repository at this point in the history
* feat: optimize test

* feat: optimize test
  • Loading branch information
devhaozi authored Jul 14, 2024
1 parent 3c96472 commit 3d90c26
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions session/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package session

import (
"fmt"
"sync"
"testing"

"github.com/stretchr/testify/suite"
Expand All @@ -10,6 +11,7 @@ import (
sessioncontract "github.com/goravel/framework/contracts/session"
"github.com/goravel/framework/foundation/json"
mockconfig "github.com/goravel/framework/mocks/config"
"github.com/goravel/framework/support/str"
)

type ManagerTestSuite struct {
Expand Down Expand Up @@ -92,6 +94,39 @@ func (m *ManagerTestSuite) TestGetDefaultDriver() {
m.Equal("file", m.manager.getDefaultDriver())
}

func (m *ManagerTestSuite) TestConcurrentReadWrite() {
// provide driver name
driver, err := m.manager.Driver("file")
m.Nil(err)
m.NotNil(driver)
m.Equal("*driver.File", fmt.Sprintf("%T", driver))

// provide no driver name
m.mockConfig.On("GetString", "session.driver").Return("file").Once()

driver, err = m.manager.Driver()
m.Nil(err)
m.NotNil(driver)
m.Equal("*driver.File", fmt.Sprintf("%T", driver))

var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
id := str.Random(32)
s := str.Random(32)
m.Nil(driver.Write(id, s))
data, err := driver.Read(id)
m.Nil(err)
m.Equal(s, data)
wg.Done()
}()
}

wg.Wait()
m.Nil(driver.Destroy("test"))
}

func (m *ManagerTestSuite) getManager() *Manager {
return NewManager(m.mockConfig, m.json)
}
Expand Down

0 comments on commit 3d90c26

Please sign in to comment.