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 KoPropertyDeclaration.

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:

Verify Modifiers

Property modifiers can be validated to ensure proper encapsulation:

Verify Annotations

Property annotations can be verified for presence and correct usage:

Verify Accessors

Getter and setter presence and implementation can be validated:

Check if property has getter:

Check if property has setter:

Verify Initialization

Property initialization can be verified:

Verify Delegates

Property delegates can be verified:

Check if property has lazy delegate:

Verify Visibility

Property visibility scope can be validated:

Check if property has internal modifier:

Verify Mutability

Property mutability can be checked.

Check if property is immutable:

Check if property is mutable:

Last updated