Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions xapi-model/src/main/java/dev/learning/xapi/model/Account.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import dev.learning.xapi.model.validation.constraints.HasScheme;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.net.URI;
Expand All @@ -30,6 +31,7 @@ public class Account {
* The canonical home page for the system the account is on.
*/
@NotNull
@HasScheme
private URI homePage;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package dev.learning.xapi.model;

import com.fasterxml.jackson.annotation.JsonMerge;
import dev.learning.xapi.model.validation.constraints.HasScheme;
import dev.learning.xapi.model.validation.constraints.ValidActivityDefinition;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
Expand Down Expand Up @@ -34,6 +35,7 @@ public class Activity implements StatementObject, SubStatementObject {
* An identifier for a single unique Activity.
*/
@NotNull
@HasScheme
private URI id;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,14 @@ public class ActivityDefinition {
/**
* The type of Activity.
*/
@HasScheme
private URI type;

/**
* Resolves to a document with human-readable information about the Activity, which could include
* a way to launch the activity.
*/
@HasScheme
private URI moreInfo;

/**
Expand Down
2 changes: 2 additions & 0 deletions xapi-model/src/main/java/dev/learning/xapi/model/Actor.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
import dev.learning.xapi.model.validation.constraints.HasScheme;
import dev.learning.xapi.model.validation.constraints.Mbox;
import jakarta.validation.Valid;
import java.net.URI;
Expand Down Expand Up @@ -63,6 +64,7 @@ public abstract class Actor implements StatementObject, SubStatementObject {
/**
* An openID.
*/
@HasScheme
URI openid;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import dev.learning.xapi.model.validation.constraints.HasScheme;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.valueextraction.Unwrapping;
import java.net.URI;
Expand Down Expand Up @@ -37,6 +38,7 @@ public class Attachment {
* Identifies the usage of this Attachment.
*/
@NotNull
@HasScheme
private URI usageType;

/**
Expand Down Expand Up @@ -75,6 +77,7 @@ public class Attachment {
* performs DNS lookups when calling equals and hashcode.
* </p>
*/
@HasScheme
private URI fileUrl;

/**
Expand Down
19 changes: 19 additions & 0 deletions xapi-model/src/test/java/dev/learning/xapi/model/AccountTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -185,4 +185,23 @@ void whenValidatingAccountWithEmptyNameThenConstraintViolationsSizeIsOne() {

}

@Test
void whenValidatingAccountWithHomepageWithNoSchemeThenConstraintViolationsSizeIsOne() {

final var account = Account.builder()

.name("Example")

.homePage(URI.create("www.example.com"))

.build();

// When Validating Account With Homepage With No Scheme
final Set<ConstraintViolation<Account>> constraintViolations = validator.validate(account);

// Then ConstraintViolations Size Is One
assertThat(constraintViolations, hasSize(1));

}

}
Loading