// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.retrace.stacktraces;

import java.util.Arrays;
import java.util.List;

public class PGStackTrace implements StackTraceForTest {

  @Override
  public List<String> obfuscatedStackTrace() {
    return Arrays.asList(
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime: java.lang.NullPointerException: Attempt"
            + " to invoke virtual method 'boolean"
            + " com.google.android.foo(com.google.android.foo.Data$Key)' on a null object"
            + " reference",
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime:        at"
            + " com.google.apps.sectionheader.SectionHeaderListController.onToolbarStateChanged(PG:586)",
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime:        at"
            + " com.google.apps.Controller.onToolbarStateChanged(PG:1087)");
  }

  @Override
  public String mapping() {
    return "";
  }

  @Override
  public List<String> retracedStackTrace() {
    return Arrays.asList(
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime: java.lang.NullPointerException: Attempt"
            + " to invoke virtual method 'boolean"
            + " com.google.android.foo(com.google.android.foo.Data$Key)' on a null object"
            + " reference",
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime:        at"
            + " com.google.apps.sectionheader.SectionHeaderListController.onToolbarStateChanged(SectionHeaderListController.java:586)",
        "09-16 15:43:01.249 23316 23316 E AndroidRuntime:        at"
            + " com.google.apps.Controller.onToolbarStateChanged(Controller.java:1087)");
  }

  @Override
  public int expectedWarnings() {
    return 0;
  }
}
