original.setProducerUrl("pu1");
original.setType(browserType);
original.setTypeId(1);
original.setUrl("u1");
final Builder copy1 = new Browser.Builder(original);
assertThat(copy1.getFamily()).isEqualTo(UserAgentFamily.CHROME);
assertThat(copy1.getIcon()).isEqualTo("i1");
assertThat(copy1.getInfoUrl()).isEqualTo("iu1");
assertThat(copy1.getOperatingSystem()).isSameAs(operatingSystem);
assertThat(copy1.getPatterns()).isEqualTo(patternSet);
assertThat(copy1.getProducer()).isEqualTo("p1");
assertThat(copy1.getProducerUrl()).isEqualTo("pu1");
assertThat(copy1.getType().getName()).isEqualTo("browser type test");
assertThat(copy1.getType().getId()).isEqualTo(1);
assertThat(copy1.getTypeId()).isEqualTo(1);
assertThat(copy1.getUrl()).isEqualTo("u1");
final Builder copy2 = original.copy();
assertThat(copy2.getFamily()).isEqualTo(UserAgentFamily.CHROME);
assertThat(copy2.getIcon()).isEqualTo("i1");
assertThat(copy2.getInfoUrl()).isEqualTo("iu1");
assertThat(copy2.getOperatingSystem()).isSameAs(operatingSystem);
assertThat(copy2.getPatterns()).isEqualTo(patternSet);
assertThat(copy2.getProducer()).isEqualTo("p1");
assertThat(copy2.getProducerUrl()).isEqualTo("pu1");
assertThat(copy2.getType().getName()).isEqualTo("browser type test");
assertThat(copy2.getType().getId()).isEqualTo(1);
assertThat(copy2.getTypeId()).isEqualTo(1);
assertThat(copy2.getUrl()).isEqualTo("u1");
}