mirror of
https://github.com/pushbits/server.git
synced 2025-07-23 11:27:24 +02:00
add test for getUser & add readme
This commit is contained in:
parent
46dd19b07d
commit
e6f24c4458
6 changed files with 114 additions and 21 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/pushbits/server/internal/configuration"
|
||||
"github.com/pushbits/server/internal/database"
|
||||
"github.com/pushbits/server/internal/model"
|
||||
"github.com/pushbits/server/tests"
|
||||
"github.com/pushbits/server/tests/mockups"
|
||||
|
@ -18,6 +19,7 @@ import (
|
|||
|
||||
var TestApplicationHandler *ApplicationHandler
|
||||
var TestUsers []*model.User
|
||||
var TestDatabase *database.Database
|
||||
|
||||
// Collect all created applications to check & delete them later
|
||||
var SuccessAplications map[uint][]model.Application
|
||||
|
@ -35,7 +37,15 @@ func TestMain(m *testing.M) {
|
|||
config.Database.Dialect = "sqlite3"
|
||||
|
||||
// Set up test environment
|
||||
appHandler, err := getApplicationHandler(&config.Matrix)
|
||||
db, err := mockups.GetEmptyDatabase(config.Crypto)
|
||||
if err != nil {
|
||||
cleanUp()
|
||||
log.Println("Can not set up database: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
TestDatabase = db
|
||||
|
||||
appHandler, err := getApplicationHandler(config)
|
||||
if err != nil {
|
||||
cleanUp()
|
||||
log.Println("Can not set up application handler: ", err)
|
||||
|
@ -46,6 +56,7 @@ func TestMain(m *testing.M) {
|
|||
TestUsers = mockups.GetUsers(config)
|
||||
SuccessAplications = make(map[uint][]model.Application)
|
||||
|
||||
// Run
|
||||
m.Run()
|
||||
cleanUp()
|
||||
}
|
||||
|
@ -300,18 +311,13 @@ func TestApi_DeleteApplication(t *testing.T) {
|
|||
}
|
||||
|
||||
// GetApplicationHandler creates and returns an application handler
|
||||
func getApplicationHandler(c *configuration.Matrix) (*ApplicationHandler, error) {
|
||||
db, err := mockups.GetEmptyDatabase()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
dispatcher, err := mockups.GetMatrixDispatcher(c.Homeserver, c.Username, c.Password)
|
||||
func getApplicationHandler(c *configuration.Configuration) (*ApplicationHandler, error) {
|
||||
dispatcher, err := mockups.GetMatrixDispatcher(c.Matrix.Homeserver, c.Matrix.Username, c.Matrix.Password, c.Crypto)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &ApplicationHandler{
|
||||
DB: db,
|
||||
DB: TestDatabase,
|
||||
DP: dispatcher,
|
||||
}, nil
|
||||
}
|
||||
|
@ -321,9 +327,9 @@ func validateAllApplications(user *model.User, apps []model.Application) bool {
|
|||
if _, ok := SuccessAplications[user.ID]; !ok {
|
||||
if len(apps) == 0 {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
for _, successApp := range SuccessAplications[user.ID] {
|
||||
|
|
|
@ -53,13 +53,10 @@ func TestApi_getApplication(t *testing.T) {
|
|||
assert := assert.New(t)
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
// Generate a mock database
|
||||
db, err := mockups.GetEmptyDatabase()
|
||||
assert.NoErrorf(err, "Could not get database: ", err)
|
||||
|
||||
applications := mockups.GetAllApplications()
|
||||
mockups.AddApplicationsToDb(db, applications)
|
||||
mockups.AddApplicationsToDb(TestDatabase, applications)
|
||||
|
||||
// No testing of invalid ids as that is tested in TestApi_getID already
|
||||
testCases := make(map[uint]tests.Request)
|
||||
testCases[500] = tests.Request{Name: "-", Method: "GET", Endpoint: "/", Data: "", ShouldStatus: 404}
|
||||
testCases[1] = tests.Request{Name: "-", Method: "GET", Endpoint: "/", Data: "", ShouldStatus: 200}
|
||||
|
@ -72,7 +69,7 @@ func TestApi_getApplication(t *testing.T) {
|
|||
}
|
||||
|
||||
c.Set("id", id)
|
||||
app, err := getApplication(c, db)
|
||||
app, err := getApplication(c, TestDatabase)
|
||||
|
||||
if req.ShouldStatus >= 200 && req.ShouldStatus < 300 {
|
||||
assert.Equalf(app.ID, id, "getApplication id was set to %d but resulting app id is %d", id, app.ID)
|
||||
|
@ -85,3 +82,36 @@ func TestApi_getApplication(t *testing.T) {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
func TestApi_getUser(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
_, err := mockups.AddUsersToDb(TestDatabase, TestUsers)
|
||||
assert.NoErrorf(err, "Adding users to database failed: %v", err)
|
||||
|
||||
// No testing of invalid ids as that is tested in TestApi_getID already
|
||||
testCases := make(map[uint]tests.Request)
|
||||
testCases[500] = tests.Request{Name: "-", Method: "GET", Endpoint: "/", Data: "", ShouldStatus: 404}
|
||||
testCases[1] = tests.Request{Name: "-", Method: "GET", Endpoint: "/", Data: "", ShouldStatus: 200}
|
||||
testCases[2] = tests.Request{Name: "-", Method: "GET", Endpoint: "/", Data: "", ShouldStatus: 200}
|
||||
|
||||
for id, req := range testCases {
|
||||
w, c, err := req.GetRequest()
|
||||
if err != nil {
|
||||
t.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
c.Set("id", id)
|
||||
user, err := getUser(c, TestDatabase)
|
||||
|
||||
if req.ShouldStatus >= 200 && req.ShouldStatus < 300 {
|
||||
assert.Equalf(user.ID, id, "getUser id was set to %d but resulting app id is %d", id, user.ID)
|
||||
assert.NoErrorf(err, "getUser with id %v (%t) returned an error altough it should not: %v", id, id, err)
|
||||
} else {
|
||||
assert.Errorf(err, "getUser with id %v (%t) returned no error altough it should", id, id)
|
||||
}
|
||||
|
||||
assert.Equalf(w.Code, req.ShouldStatus, "getUser id was set to %v (%T) and should result in status code %d but code is %d", id, id, req.ShouldStatus, w.Code)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue