// Path: lightcycle-integration-test/src/main/java/com/soundcloud/lightcycle/integration_test/callback/FragmentLifecycleCallback.java
// public enum FragmentLifecycleCallback {
//     onAttach,
//     onCreate,
//     onViewCreated,
//     onActivityCreated,
//     onStart,
//     onResume,
//     onPause,
//     onStop,
//     onSaveInstanceState,
//     onDestroyView,
//     onDestroy,
//     onDetach
// }
// 
// Path: lightcycle-integration-test/src/test/java/utils/FragmentTestHelper.java
// public abstract class FragmentTestHelper {
//     public abstract FragmentTestHelper removeFragment();
// 
//     public abstract FragmentTestHelper addFragment();
// 
//     public static FragmentTestHelper from(Fragment fragment) {
//         return SupportFragmentTestHelper.create(fragment);
//     }
// 
//     private static final class SupportFragmentTestHelper extends FragmentTestHelper {
// 
//         private final FragmentManager fragmentManager;
//         private final Fragment fragment;
// 
//         SupportFragmentTestHelper(FragmentManager fragmentManager, Fragment fragment) {
//             this.fragmentManager = fragmentManager;
//             this.fragment = fragment;
//         }
// 
//         static SupportFragmentTestHelper create(Fragment fragment) {
//             return new SupportFragmentTestHelper(
//                     Robolectric.buildActivity(SupportFragmentControllerActivity.class)
//                             .create()
//                             .get()
//                             .getFragmentManager(),
//                     fragment);
//         }
// 
//         @Override
//         public FragmentTestHelper removeFragment() {
//             fragmentManager
//                     .beginTransaction()
//                     .remove(fragment)
//                     .commit();
//             return this;
//         }
// 
//         @Override
//         public FragmentTestHelper addFragment() {
//             fragmentManager
//                     .beginTransaction().add(1, fragment)
//                     .commit();
//             return this;
//         }
// 
//         static class SupportFragmentControllerActivity extends FragmentActivity {
//             @Override
//             protected void onCreate(Bundle savedInstanceState) {
//                 super.onCreate(savedInstanceState);
//                 LinearLayout view = new LinearLayout(this);
//                 view.setId(1);
// 
//                 setContentView(view);
//             }
//         }
//     }
// 
//     private static final class MyFragmentTestHelper extends FragmentTestHelper {
// 
//         private final android.app.FragmentManager fragmentManager;
//         private final android.app.Fragment fragment;
// 
//         MyFragmentTestHelper(android.app.FragmentManager fragmentManager, Fragment fragment) {
//             this.fragmentManager = fragmentManager;
//             this.fragment = fragment;
//         }
// 
//         static MyFragmentTestHelper create(android.app.Fragment fragment) {
//             return new MyFragmentTestHelper(Robolectric.buildActivity(FragmentControllerActivity.class)
//                     .create()
//                     .get()
//                     .getFragmentManager(),
//                     fragment);
//         }
// 
//         @Override
//         public FragmentTestHelper removeFragment() {
//             fragmentManager
//                     .beginTransaction()
//                     .remove(fragment)
//                     .commit();
//             return this;
//         }
// 
//         @Override
//         public FragmentTestHelper addFragment() {
//             fragmentManager
//                     .beginTransaction().add(1, fragment)
//                     .commit();
//             return this;
//         }
// 
//         public static class FragmentControllerActivity extends Activity {
//             @Override
//             protected void onCreate(Bundle savedInstanceState) {
//                 super.onCreate(savedInstanceState);
//                 LinearLayout view = new LinearLayout(this);
//                 view.setId(1);
// 
//                 setContentView(view);
//             }
//         }
//     }
// }


import android.os.Bundle;
import androidx.fragment.app.testing.FragmentScenario;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.truth.BooleanSubject;
import com.soundcloud.lightcycle.integration_test.callback.FragmentLifecycleCallback;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
import java.util.List;
import utils.FragmentTestHelper;
import static com.google.common.truth.Truth.assertThat;
    }

    @Test
    public void onStop() {
        controller.onFragment(fragment -> {
            fragment.onStop();
        });
        assertLifecycleCallbackCallIsCorrect(
                Arrays.asList(
                        FragmentLifecycleCallback.onAttach,
                        FragmentLifecycleCallback.onCreate,
                        FragmentLifecycleCallback.onViewCreated,
                        FragmentLifecycleCallback.onActivityCreated,
                        FragmentLifecycleCallback.onStart,
                        FragmentLifecycleCallback.onResume,
                        FragmentLifecycleCallback.onStop
                )
        );
    }

    @Test
    public void onDestroy() {
        controller.onFragment(fragment -> {
            fragment.onDestroy();
        });
        assertLifecycleCallbackCallIsCorrect(
                Arrays.asList(
                        FragmentLifecycleCallback.onAttach,
                        FragmentLifecycleCallback.onCreate,
                        FragmentLifecycleCallback.onViewCreated,
// Path: lightcycle-integration-test/src/main/java/com/soundcloud/lightcycle/integration_test/callback/FragmentLifecycleCallback.java
// public enum FragmentLifecycleCallback {
//     onAttach,
//     onCreate,
//     onViewCreated,
//     onActivityCreated,
//     onStart,
//     onResume,
//     onPause,
//     onStop,
//     onSaveInstanceState,
//     onDestroyView,
//     onDestroy,
//     onDetach
// }
// 
// Path: lightcycle-integration-test/src/test/java/utils/FragmentTestHelper.java
// public abstract class FragmentTestHelper {
//     public abstract FragmentTestHelper removeFragment();
// 
//     public abstract FragmentTestHelper addFragment();
// 
//     public static FragmentTestHelper from(Fragment fragment) {
//         return SupportFragmentTestHelper.create(fragment);
//     }
// 
//     private static final class SupportFragmentTestHelper extends FragmentTestHelper {
// 
//         private final FragmentManager fragmentManager;
//         private final Fragment fragment;
// 
//         SupportFragmentTestHelper(FragmentManager fragmentManager, Fragment fragment) {
//             this.fragmentManager = fragmentManager;
//             this.fragment = fragment;
//         }
// 
//         static SupportFragmentTestHelper create(Fragment fragment) {
//             return new SupportFragmentTestHelper(
//                     Robolectric.buildActivity(SupportFragmentControllerActivity.class)
//                             .create()
//                             .get()
//                             .getFragmentManager(),
//                     fragment);
//         }
// 
//         @Override
//         public FragmentTestHelper removeFragment() {
//             fragmentManager
//                     .beginTransaction()
//                     .remove(fragment)
//                     .commit();
//             return this;
//         }
// 
//         @Override
//         public FragmentTestHelper addFragment() {
//             fragmentManager
//                     .beginTransaction().add(1, fragment)
//                     .commit();
//             return this;
//         }
// 
//         static class SupportFragmentControllerActivity extends FragmentActivity {
//             @Override
//             protected void onCreate(Bundle savedInstanceState) {
//                 super.onCreate(savedInstanceState);
//                 LinearLayout view = new LinearLayout(this);
//                 view.setId(1);
// 
//                 setContentView(view);
//             }
//         }
//     }
// 
//     private static final class MyFragmentTestHelper extends FragmentTestHelper {
// 
//         private final android.app.FragmentManager fragmentManager;
//         private final android.app.Fragment fragment;
// 
//         MyFragmentTestHelper(android.app.FragmentManager fragmentManager, Fragment fragment) {
//             this.fragmentManager = fragmentManager;
//             this.fragment = fragment;
//         }
// 
//         static MyFragmentTestHelper create(android.app.Fragment fragment) {
//             return new MyFragmentTestHelper(Robolectric.buildActivity(FragmentControllerActivity.class)
//                     .create()
//                     .get()
//                     .getFragmentManager(),
//                     fragment);
//         }
// 
//         @Override
//         public FragmentTestHelper removeFragment() {
//             fragmentManager
//                     .beginTransaction()
//                     .remove(fragment)
//                     .commit();
//             return this;
//         }
// 
//         @Override
//         public FragmentTestHelper addFragment() {
//             fragmentManager
//                     .beginTransaction().add(1, fragment)
//                     .commit();
//             return this;
//         }
// 
//         public static class FragmentControllerActivity extends Activity {
//             @Override
//             protected void onCreate(Bundle savedInstanceState) {
//                 super.onCreate(savedInstanceState);
//                 LinearLayout view = new LinearLayout(this);
//                 view.setId(1);
// 
//                 setContentView(view);
//             }
//         }
//     }
// }


// Path: lightcycle-integration-test/src/test/java/com/soundcloud/lightcycle/integration_test/SupportFragmentLoggerTest.java
import android.os.Bundle;
import androidx.fragment.app.testing.FragmentScenario;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.truth.BooleanSubject;
import com.soundcloud.lightcycle.integration_test.callback.FragmentLifecycleCallback;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
import java.util.List;
import utils.FragmentTestHelper;
import static com.google.common.truth.Truth.assertThat;

    }

    @Test
    public void onStop() {
        controller.onFragment(fragment -> {
            fragment.onStop();
        });
        assertLifecycleCallbackCallIsCorrect(
                Arrays.asList(
                        FragmentLifecycleCallback.onAttach,
                        FragmentLifecycleCallback.onCreate,
                        FragmentLifecycleCallback.onViewCreated,
                        FragmentLifecycleCallback.onActivityCreated,
                        FragmentLifecycleCallback.onStart,
                        FragmentLifecycleCallback.onResume,
                        FragmentLifecycleCallback.onStop
                )
        );
    }

    @Test
    public void onDestroy() {
        controller.onFragment(fragment -> {
            fragment.onDestroy();
        });
        assertLifecycleCallbackCallIsCorrect(
                Arrays.asList(
                        FragmentLifecycleCallback.onAttach,
                        FragmentLifecycleCallback.onCreate,
                        FragmentLifecycleCallback.onViewCreated,
                        FragmentLifecycleCallback.onActivityCreated,