@Override
    public View getView(int position, View convertView, ViewGroup parent) {
      if (convertView == null) {
        convertView = mInflater.inflate(R.layout.split_aggregate_list_item, parent, false);
      }

      SplitAggregateItemCache cache = (SplitAggregateItemCache) convertView.getTag();
      if (cache == null) {
        cache = new SplitAggregateItemCache();
        cache.name = (TextView) convertView.findViewById(R.id.name);
        cache.additionalData = (TextView) convertView.findViewById(R.id.additionalData);
        cache.sourceIcon = (ImageView) convertView.findViewById(R.id.sourceIcon);
        convertView.setTag(cache);
      }

      final RawContactInfo info = getItem(position);
      cache.name.setText(info.name);
      cache.additionalData.setText(info.getAdditionalData());

      Drawable icon = null;
      AccountType accountType = mAccountTypes.getAccountType(info.accountType, info.dataSet);
      if (accountType != null) {
        icon = accountType.getDisplayIcon(getContext());
      }
      if (icon != null) {
        cache.sourceIcon.setImageDrawable(icon);
      } else {
        cache.sourceIcon.setImageResource(R.drawable.unknown_source);
      }
      return convertView;
    }
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    mMockContext = new ContactsMockContext(getContext());
    mContactsProvider = mMockContext.getContactsProvider();

    InjectedServices services = new InjectedServices();
    AccountType accountType =
        new BaseAccountType() {
          @Override
          public boolean areContactsWritable() {
            return false;
          }
        };
    accountType.accountType = "mockAccountType";

    AccountWithDataSet account = new AccountWithDataSet("mockAccountName", "mockAccountType", null);

    mMockContext.setMockAccountTypeManager(
        new MockAccountTypeManager(
            new AccountType[] {accountType}, new AccountWithDataSet[] {account}));
  }