Verify Properties
Properties can be checked for proper access modifiers, type declarations, and initialization patterns.
To verify properties start by querying all properties present in the project:
Konsist
.scopeFromProject()
.properties()
...
In practical scenarios you'll typically want to verify a specific subset of properties - such as those defined inside classes:
Konsist
.scopeFromProject()
.classes()
.properties()
...
Konsist allows you to verify multiple aspects of a properties. For a complete understanding of the available APIs, refer to the language reference documentation for .
Let's look at few examples.
Verify Name
Property names can be validated to ensure they follow project naming conventions and patterns.
Check if Boolean
property has name starting with is
:
...
.assertTrue {
it.type?.name == "Boolean" && it.hasNameStartingWith("is")
}
Verify Type
Property types can be validated to ensure type safety and conventions:
...
.assertTrue {
it.type?.name == "LocalDateTime"
}
Verify Modifiers
Property modifiers can be validated to ensure proper encapsulation:
...
.assertTrue {
it.hasLateinitModifier
}
Verify Annotations
Property annotations can be verified for presence and correct usage:
...
.assertTrue {
it.hasAnnotationOf(JsonProperty::class)
}
Verify Accessors
Getter and setter presence and implementation can be validated:
Check if property has getter
:
...
.assertTrue {
it.hasGetter
}
Check if property has setter
:
...
.assertTrue {
it.hasSetter
}
Verify Initialization
Property initialization can be verified:
...
.assertTrue {
it.isInitialized
}
Verify Delegates
Property delegates can be verified:
Check if property has lazy
delegate:
...
.assertTrue {
it.hasDelegate("lazy")
}
Verify Visibility
Property visibility scope can be validated:
Check if property has internal
modifier:
...
.assertTrue {
it.isInternal
}
Verify Mutability
Property mutability can be checked.
Check if property is immutable:
...
.assertTrue {
it.isVal
}
Check if property is mutable:
...
.assertTrue {
it.isVar
}
Last updated