ThingStatusInfoBuilder { public ThingStatusInfo build() { return new ThingStatusInfo(status, statusDetail, description); } private  ThingStatusInfoBuilder(ThingStatus status, ThingStatusDetail statusDetail, @Nullable String description); static ThingStatusInfoBuilder create(ThingStatus status, ThingStatusDetail statusDetail); static ThingStatusInfoBuilder create(ThingStatus status); ThingStatusInfoBuilder withDescription(@Nullable String description); ThingStatusInfoBuilder withStatusDetail(ThingStatusDetail statusDetail); ThingStatusInfo build();  }
@Test public void testThingStatusInfoBuilderStatus() { ThingStatusInfo thingStatusInfo = builder.build(); assertThat(thingStatusInfo.getStatus(), is(ThingStatus.ONLINE)); assertThat(thingStatusInfo.getStatusDetail(), is(ThingStatusDetail.NONE)); assertThat(thingStatusInfo.getDescription(), is(nullValue())); }