Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
controller
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TFS
controller
Commits
945c001e
Commit
945c001e
authored
1 year ago
by
Vasilis Katopodis
Browse files
Options
Downloads
Patches
Plain Diff
test: add PolicyRuleServiceValidation tests
parent
1b89d475
No related branches found
No related tags found
2 merge requests
!142
Release TeraFlowSDN 2.1
,
!118
test: fix policy broken tests
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/policy/src/test/java/eu/teraflow/policy/PolicyRuleServiceValidationTest.java
+108
-1
108 additions, 1 deletion
...a/eu/teraflow/policy/PolicyRuleServiceValidationTest.java
with
108 additions
and
1 deletion
src/policy/src/test/java/eu/teraflow/policy/PolicyRuleServiceValidationTest.java
+
108
−
1
View file @
945c001e
...
...
@@ -17,8 +17,25 @@
package
eu.teraflow.policy
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyString
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
eu.teraflow.policy.context.ContextService
;
import
eu.teraflow.policy.context.model.ConfigActionEnum
;
import
eu.teraflow.policy.context.model.ConfigRule
;
import
eu.teraflow.policy.context.model.ConfigRuleCustom
;
import
eu.teraflow.policy.context.model.ConfigRuleTypeCustom
;
import
eu.teraflow.policy.context.model.Device
;
import
eu.teraflow.policy.context.model.DeviceConfig
;
import
eu.teraflow.policy.context.model.DeviceDriverEnum
;
import
eu.teraflow.policy.context.model.DeviceOperationalStatus
;
import
eu.teraflow.policy.context.model.EndPoint.EndPointBuilder
;
import
eu.teraflow.policy.context.model.EndPointId
;
import
eu.teraflow.policy.context.model.Location
;
import
eu.teraflow.policy.context.model.LocationTypeRegion
;
import
eu.teraflow.policy.context.model.ServiceId
;
import
eu.teraflow.policy.context.model.TopologyId
;
import
eu.teraflow.policy.kpi_sample_types.model.KpiSampleType
;
import
eu.teraflow.policy.model.BooleanOperator
;
import
eu.teraflow.policy.model.NumericalOperator
;
import
eu.teraflow.policy.model.PolicyRuleAction
;
...
...
@@ -32,13 +49,103 @@ import eu.teraflow.policy.model.PolicyRuleStateEnum;
import
eu.teraflow.policy.monitoring.model.IntegerKpiValue
;
import
eu.teraflow.policy.monitoring.model.KpiValue
;
import
io.quarkus.test.junit.QuarkusTest
;
import
io.smallrye.mutiny.Uni
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.UUID
;
import
javax.inject.Inject
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.mockito.Mockito
;
@QuarkusTest
class
PolicyRuleServiceValidationTest
{
@Inject
Serializer
serializer
;
private
MutinyContextServiceWrapper
mutinyContextServiceStub
;
private
ContextService
contextService
;
private
PolicyRuleConditionValidator
policyRuleConditionValidator
;
@BeforeEach
void
setUp
()
{
contextService
=
Mockito
.
mock
(
ContextService
.
class
);
policyRuleConditionValidator
=
new
PolicyRuleConditionValidator
(
contextService
);
mutinyContextServiceStub
=
Mockito
.
mock
(
MutinyContextServiceWrapper
.
class
);
}
@Test
void
testIsDeviceIdValid_grpc
()
{
String
deviceId
=
"deviceIdGrpc"
;
final
Device
device
=
createDevice
(
deviceId
);
final
var
serializedDevice
=
serializer
.
serialize
(
device
);
final
var
serializedDeviceId
=
serializedDevice
.
getDeviceId
();
when
(
mutinyContextServiceStub
.
getDevice
(
serializedDeviceId
))
.
thenReturn
(
Uni
.
createFrom
().
item
(
serializedDevice
));
Boolean
result
=
policyRuleConditionValidator
.
isDeviceIdValid
(
deviceId
).
await
().
indefinitely
();
assertThat
(
result
).
isEqualTo
(
true
);
}
@Test
void
testIsDeviceIdValidReturnsTrue
()
{
String
deviceId
=
"deviceId"
;
Device
device
=
createDevice
(
deviceId
);
when
(
contextService
.
getDevice
(
anyString
())).
thenReturn
(
Uni
.
createFrom
().
item
(
device
));
Boolean
result
=
policyRuleConditionValidator
.
isDeviceIdValid
(
deviceId
).
await
().
indefinitely
();
assertThat
(
result
).
isEqualTo
(
true
);
}
@Test
void
testIsDeviceIdValidReturnsFalse
()
{
String
deviceId
=
"deviceId"
;
when
(
contextService
.
getDevice
(
anyString
()))
.
thenReturn
(
Uni
.
createFrom
().
failure
(
new
RuntimeException
(
"Failure"
)));
Boolean
result
=
policyRuleConditionValidator
.
isDeviceIdValid
(
deviceId
).
await
().
indefinitely
();
assertThat
(
result
).
isEqualTo
(
false
);
}
Device
createDevice
(
String
deviceId
)
{
final
var
configRuleCustomA
=
new
ConfigRuleCustom
(
"resourceKeyA"
,
"resourceValueA"
);
final
var
configRuleTypeA
=
new
ConfigRuleTypeCustom
(
configRuleCustomA
);
final
var
deviceConfig
=
new
DeviceConfig
(
List
.
of
(
new
ConfigRule
(
ConfigActionEnum
.
SET
,
configRuleTypeA
)));
final
var
deviceDrivers
=
List
.
of
(
DeviceDriverEnum
.
IETF_NETWORK_TOPOLOGY
,
DeviceDriverEnum
.
P4
);
final
var
expectedTopologyIdB
=
new
TopologyId
(
"contextIdB"
,
"idB"
);
final
var
expectedDeviceIdB
=
"expectedDeviceIdB"
;
final
var
expectedIdB
=
"expectedIdB"
;
final
var
endPointIdB
=
new
EndPointId
(
expectedTopologyIdB
,
expectedDeviceIdB
,
expectedIdB
);
final
var
endPointTypeB
=
"endPointTypeB"
;
final
var
kpiSampleTypesB
=
List
.
of
(
KpiSampleType
.
BYTES_RECEIVED
,
KpiSampleType
.
BYTES_TRANSMITTED
);
final
var
locationTypeRegionB
=
new
LocationTypeRegion
(
"ATH"
);
final
var
locationB
=
new
Location
(
locationTypeRegionB
);
final
var
endPointB
=
new
EndPointBuilder
(
endPointIdB
,
endPointTypeB
,
kpiSampleTypesB
)
.
location
(
locationB
)
.
build
();
final
var
endPoints
=
List
.
of
(
endPointB
);
return
new
Device
(
deviceId
,
"deviceType"
,
deviceConfig
,
DeviceOperationalStatus
.
ENABLED
,
deviceDrivers
,
endPoints
);
}
private
List
<
PolicyRuleCondition
>
createPolicyRuleConditions
(
String
kpiId
,
NumericalOperator
numericalOperator
,
KpiValue
<?>
kpiValue
)
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment