@Test
public void setThingDefinitionWorksAsExpected() {

    final ImmutableThingDefinition newDefinition = ImmutableThingDefinition.ofParsed("foo:new:crew");
    final Thing changedThing = KNOWN_THING_V2.setDefinition(newDefinition);
    assertThat(changedThing)
            .isNotSameAs(KNOWN_THING_V2)
            .hasId(THING_ID)
            .hasPolicyId(POLICY_ID)
            .hasAttributes(ATTRIBUTES)
            .hasDefinition(newDefinition)
            .hasFeatures(FEATURES)
            .hasLifecycle(LIFECYCLE)
            .hasRevision(REVISION);
}