@Test public void traitsAreCopied() { assertThat(analyticsContext.traits()).isEqualTo(traits).isNotSameAs(traits); Traits traits = new Traits().putAnonymousId("foo"); analyticsContext.setTraits(traits); assertThat(analyticsContext.traits()).isEqualTo(traits).isNotSameAs(traits); }
@Test public void logoutClearsTraitsAndUpdatesContext() { analyticsContext.setTraits(new Traits().putAge(20).putAvatar("bar")); analytics.logout(); verify(traitsCache).delete(); verify(traitsCache) .set( argThat( new TypeSafeMatcher<Traits>() { @Override protected boolean matchesSafely(Traits traits) { return !isNullOrEmpty(traits.anonymousId()); } @Override public void describeTo(Description description) {} })); assertThat(analyticsContext.traits()).hasSize(1).containsKey("anonymousId"); }