Skip to content

Commit

Permalink
tip
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Turrell-Croft committed Aug 8, 2023
1 parent 1e7fb0c commit 10520e3
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 3 deletions.
4 changes: 4 additions & 0 deletions xapi-model/src/main/java/dev/learning/xapi/model/Agent.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.With;
import lombok.experimental.SuperBuilder;

/**
Expand All @@ -19,9 +21,11 @@
*
* @see <a href="https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#agent">xAPI Agent</a>
*/
@With
@Getter
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@JsonIgnoreProperties(value = {"firstName", "lastName"})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,9 +329,7 @@ public Builder agentAuthority(Consumer<Agent.Builder<?, ?>> authority) {
public Builder object(StatementObject object) {

if (object instanceof final Agent agent && AgentObjectType.AGENT != agent.getObjectType()) {
this.object = Agent.builder().objectType(AgentObjectType.AGENT).name(agent.getName())
.account(agent.getAccount()).mbox(agent.getMbox()).mboxSha1sum(agent.getMboxSha1sum())
.openid(agent.getOpenid()).build();
this.object = agent.withObjectType(AgentObjectType.AGENT);
} else {
this.object = object;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import dev.learning.xapi.jackson.XapiStrictNullValuesModule;
import dev.learning.xapi.jackson.XapiStrictObjectTypeModule;
import dev.learning.xapi.jackson.XapiStrictTimestampModule;
import dev.learning.xapi.model.Agent.AgentObjectType;
import io.jsonwebtoken.Jwts;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
Expand Down Expand Up @@ -1685,4 +1686,51 @@ void whenSigningStatementThenSignatureIsValid()
assertThat(bodyStatement, is(statement));

}



@Test
void whenBuildingStatementWithAgentObjectWithoutObjectTypeThenStatementObjectObjectTypeIsNotNull() {

final Agent agent = Agent.builder().name("A N Other").objectType(null).build();

// When Building Statement With Agent Object Without ObjectType
final var statement = Statement.builder()

.agentActor(a -> a.name("A N Other"))

.verb(Verb.PASSED)

.object(agent)

.build();

// Then Statement Object ObjectType Is Not Null
assertThat(((Agent) statement.getObject()).getObjectType(), is(notNullValue()));

}

@Test
void whenBuildingStatementWithAgentObjectWithObjectTypeThenStatementObjectObjectTypeIsNotNull() {

final Agent agent = Agent.builder().name("A N Other").objectType(AgentObjectType.AGENT).build();

// When Building Statement With Agent Object With ObjectType
final var statement = Statement.builder()

.agentActor(a -> a.name("A N Other"))

.verb(Verb.PASSED)

.object(agent)

.build();

System.out.print(((Agent) statement.getObject()).getObjectType());

// Then Statement Object ObjectType Is Not Null
assertThat(((Agent) statement.getObject()).getObjectType(), is(notNullValue()));

}

}

0 comments on commit 10520e3

Please sign in to comment.