mirror of
https://github.com/pushbits/server.git
synced 2025-04-30 10:46:55 +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/gin-gonic/gin"
|
||||||
"github.com/pushbits/server/internal/model"
|
"github.com/pushbits/server/internal/model"
|
||||||
"github.com/pushbits/server/tests"
|
"github.com/pushbits/server/tests"
|
||||||
|
"github.com/pushbits/server/tests/mockups"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -32,8 +33,55 @@ func TestApi_getID(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Set("id", id)
|
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)
|
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/authentication/credentials"
|
||||||
"github.com/pushbits/server/internal/configuration"
|
"github.com/pushbits/server/internal/configuration"
|
||||||
"github.com/pushbits/server/internal/database"
|
"github.com/pushbits/server/internal/database"
|
||||||
|
"github.com/pushbits/server/internal/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetEmptyDatabase returns an empty sqlite database object
|
// GetEmptyDatabase returns an empty sqlite database object
|
||||||
|
@ -11,3 +12,15 @@ func GetEmptyDatabase() (*database.Database, error) {
|
||||||
cm := credentials.CreateManager(false, configuration.CryptoConfig{})
|
cm := credentials.CreateManager(false, configuration.CryptoConfig{})
|
||||||
return database.Create(cm, "sqlite3", "pushbits-test.db")
|
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