it("should deserialize json", () => {
      const accessTokens = AccessTokens.fromJSON(AccessTokenTestData.all());

      expect(accessTokens).toHaveLength(2);
      const validAccessTokenJSON   = AccessTokenTestData.validAccessToken();
      const revokedAccessTokenJSON = AccessTokenTestData.revokedAccessToken();

      expect(accessTokens[0]().id()).toEqual(validAccessTokenJSON.id);
      expect(accessTokens[0]().description()).toEqual(validAccessTokenJSON.description);
      expect(accessTokens[0]().revokedBecauseUserDeleted()).toEqual(false);
      expect(accessTokens[0]().revoked()).toEqual(false);
      expect(accessTokens[0]().revokedAt()).toBeUndefined();
      expect(accessTokens[0]().createdAt())
        .toEqual(TimeFormatter.toDate(validAccessTokenJSON.created_at));
      expect(accessTokens[0]().lastUsedAt())
        .toEqual(TimeFormatter.toDate(validAccessTokenJSON.last_used_at));

      expect(accessTokens[1]().id()).toEqual(revokedAccessTokenJSON.id);
      expect(accessTokens[1]().description()).toEqual(revokedAccessTokenJSON.description);
      expect(accessTokens[1]().revokedBecauseUserDeleted()).toEqual(true);
      expect(accessTokens[1]().revoked()).toEqual(true);
      expect(accessTokens[1]().revokedAt())
        .toEqual(TimeFormatter.toDate(revokedAccessTokenJSON.revoked_at));
      expect(accessTokens[1]().createdAt())
        .toEqual(TimeFormatter.toDate(revokedAccessTokenJSON.created_at));
      expect(accessTokens[1]().lastUsedAt())
        .toEqual(TimeFormatter.toDate(revokedAccessTokenJSON.last_used_at));
    });
    it("should sort access tokens by created at date", () => {
      const accessTokens = AccessTokens.fromJSON(AccessTokenTestData.all());

      const revokedTokens = accessTokens.sortByCreateDate();

      expect(revokedTokens[0]().id()).toBe(3);
      expect(revokedTokens[1]().id()).toBe(1);
    });
    it("should return revoked access tokens", () => {
      const accessTokens = AccessTokens.fromJSON(AccessTokenTestData.all());

      const revokedTokens = accessTokens.revokedTokens();

      expect(revokedTokens.length).toBe(1);
      expect(revokedTokens[0]().id()).toBe(3);
    });
    it("should return active access tokens", () => {
      const accessTokens = AccessTokens.fromJSON(AccessTokenTestData.all());

      const activeTokens = accessTokens.activeTokens();

      expect(activeTokens.length).toBe(1);
      expect(activeTokens[0]().id()).toBe(1);
    });
    it("should filter access token with matching search text", () => {
      const accessTokens = AccessTokens.fromJSON(AccessTokenTestData.all());

      const filteredTokens = accessTokens.filterBySearchText("ToKeN");

      expect(filteredTokens).toHaveLength(1);
      expect(filteredTokens[0]().id()).toBe(3);
    });