Added test for resources MissingStructFields

This commit is contained in:
edwardro22
2018-01-14 16:29:07 +02:00
committed by Dan Christian Bogos
parent 09bb81f3bc
commit 3aec58d044
2 changed files with 46 additions and 3 deletions

View File

@@ -533,7 +533,10 @@ func (rS *ResourceService) V1ResourcesForEvent(args utils.ArgRSv1ResourceUsage,
// V1AuthorizeResources queries service to find if an Usage is allowed
func (rS *ResourceService) V1AuthorizeResources(args utils.ArgRSv1ResourceUsage, reply *string) (err error) {
var alcMessage string
if missing := utils.MissingStructFields(&args, []string{"CGREvent.Tenant", "UsageID"}); len(missing) != 0 { //Params missing
if missing := utils.MissingStructFields(&args.CGREvent, []string{"Tenant"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
if missing := utils.MissingStructFields(&args, []string{"UsageID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
mtcRLs := rS.cachedResourcesForEvent(args.TenantID())
@@ -560,7 +563,10 @@ func (rS *ResourceService) V1AuthorizeResources(args utils.ArgRSv1ResourceUsage,
// V1AllocateResource is called when a resource requires allocation
func (rS *ResourceService) V1AllocateResource(args utils.ArgRSv1ResourceUsage, reply *string) (err error) {
if missing := utils.MissingStructFields(&args, []string{"CGREvent.Tenant", "UsageID"}); len(missing) != 0 { //Params missing
if missing := utils.MissingStructFields(&args.CGREvent, []string{"Tenant"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
if missing := utils.MissingStructFields(&args, []string{"UsageID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
var wasCached bool
@@ -613,7 +619,10 @@ func (rS *ResourceService) V1AllocateResource(args utils.ArgRSv1ResourceUsage, r
// V1ReleaseResource is called when we need to clear an allocation
func (rS *ResourceService) V1ReleaseResource(args utils.ArgRSv1ResourceUsage, reply *string) (err error) {
if missing := utils.MissingStructFields(&args, []string{"CGREvent.Tenant", "UsageID"}); len(missing) != 0 { //Params missing
if missing := utils.MissingStructFields(&args.CGREvent, []string{"Tenant"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
if missing := utils.MissingStructFields(&args, []string{"UsageID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
mtcRLs := rS.cachedResourcesForEvent(args.UsageID)

View File

@@ -259,3 +259,37 @@ func TestRSCacheSetGet(t *testing.T) {
t.Errorf("Expecting: %+v, received: %+v", r, x)
}
}
func TestV1AuthorizeResourceMissingStruct(t *testing.T) {
data, _ := NewMapStorage()
dmresmiss := NewDataManager(data)
rserv := &ResourceService{
dm: dmresmiss,
filterS: &FilterS{dm: dmresmiss},
indexedFields: []string{}, // speed up query on indexes
}
var reply *string
argsMissingTenant := utils.ArgRSv1ResourceUsage{
CGREvent: utils.CGREvent{
ID: "id1",
Event: map[string]interface{}{},
},
UsageID: "test1", // ResourceUsage Identifier
Units: 20,
}
argsMissingUsageID := utils.ArgRSv1ResourceUsage{
CGREvent: utils.CGREvent{
Tenant: "cgrates.org",
ID: "id1",
Event: map[string]interface{}{},
},
Units: 20,
}
if err := rserv.V1AuthorizeResources(argsMissingTenant, reply); err.Error() != "MANDATORY_IE_MISSING: [Tenant]" {
t.Error(err.Error())
}
if err := rserv.V1AuthorizeResources(argsMissingUsageID, reply); err.Error() != "MANDATORY_IE_MISSING: [UsageID]" {
t.Error(err.Error())
}
}