mirror of
https://github.com/pushbits/server.git
synced 2025-04-29 18:26:49 +02:00
getApplication testing
This commit is contained in:
parent
ef5409eb35
commit
46dd19b07d
3 changed files with 94 additions and 1 deletions
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/gin-gonic/gin"
|
||||
"github.com/pushbits/server/internal/model"
|
||||
"github.com/pushbits/server/tests"
|
||||
"github.com/pushbits/server/tests/mockups"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
@ -32,8 +33,55 @@ func TestApi_getID(t *testing.T) {
|
|||
}
|
||||
|
||||
c.Set("id", id)
|
||||
getID(c)
|
||||
idReturned, err := getID(c)
|
||||
|
||||
if req.ShouldStatus >= 200 && req.ShouldStatus < 300 {
|
||||
idUint, ok := id.(uint)
|
||||
if ok {
|
||||
assert.Equalf(idReturned, idUint, "getApi id was set to %d but result is %d", idUint, idReturned)
|
||||
}
|
||||
assert.NoErrorf(err, "getId with id %v (%t) returned an error altough it should not: %v", id, id, err)
|
||||
} else {
|
||||
assert.Errorf(err, "getId with id %v (%t) returned no error altough it should", id, id)
|
||||
}
|
||||
|
||||
assert.Equalf(w.Code, req.ShouldStatus, "getApi id was set to %v (%T) and should result in status code %d but code is %d", id, id, req.ShouldStatus, w.Code)
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
app, err := getApplication(c, db)
|
||||
|
||||
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)
|
||||
assert.NoErrorf(err, "getApplication with id %v (%t) returned an error altough it should not: %v", id, id, err)
|
||||
} else {
|
||||
assert.Errorf(err, "getApplication with id %v (%t) returned no error altough it should", id, id)
|
||||
}
|
||||
|
||||
assert.Equalf(w.Code, req.ShouldStatus, "getApplication id was set to %v (%T) and should result in status code %d but code is %d", id, id, req.ShouldStatus, w.Code)
|
||||
|
||||
}
|
||||
}
|
||||
|
|
32
tests/mockups/application.go
Normal file
32
tests/mockups/application.go
Normal file
|
@ -0,0 +1,32 @@
|
|||
package mockups
|
||||
|
||||
import "github.com/pushbits/server/internal/model"
|
||||
|
||||
// GetApplication1 returns an application with id 1
|
||||
func GetApplication1() *model.Application {
|
||||
return &model.Application{
|
||||
ID: 1,
|
||||
Token: "1234567890abcdefghijklmn",
|
||||
UserID: 1,
|
||||
Name: "App1",
|
||||
}
|
||||
}
|
||||
|
||||
// GetApplication2 returns an application with id 2
|
||||
func GetApplication2() *model.Application {
|
||||
return &model.Application{
|
||||
ID: 2,
|
||||
Token: "0987654321xyzabcdefghij",
|
||||
UserID: 1,
|
||||
Name: "App2",
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllApplications returns all mock-applications as a list
|
||||
func GetAllApplications() []*model.Application {
|
||||
applications := make([]*model.Application, 0)
|
||||
applications = append(applications, GetApplication1())
|
||||
applications = append(applications, GetApplication2())
|
||||
|
||||
return applications
|
||||
}
|
|
@ -4,6 +4,7 @@ import (
|
|||
"github.com/pushbits/server/internal/authentication/credentials"
|
||||
"github.com/pushbits/server/internal/configuration"
|
||||
"github.com/pushbits/server/internal/database"
|
||||
"github.com/pushbits/server/internal/model"
|
||||
)
|
||||
|
||||
// GetEmptyDatabase returns an empty sqlite database object
|
||||
|
@ -11,3 +12,15 @@ func GetEmptyDatabase() (*database.Database, error) {
|
|||
cm := credentials.CreateManager(false, configuration.CryptoConfig{})
|
||||
return database.Create(cm, "sqlite3", "pushbits-test.db")
|
||||
}
|
||||
|
||||
// AddApplicationsToDb inserts the applications apps into the database db
|
||||
func AddApplicationsToDb(db *database.Database, apps []*model.Application) error {
|
||||
for _, app := range apps {
|
||||
err := db.CreateApplication(app)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue