@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);
  }
예제 #2
0
  @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");
  }