@Test
  public void get_if_exists_when_it_does_exist() {
    String strategyName = "ethereal";
    ApplicationStatePersistenceStrategy strategy = mockApplicationStatePersistenceStrategy();
    ApplicationStatePersistenceStrategySource source =
        mockApplicationStatePersistenceStrategySource();
    Class asoClass = ReadOnlyBean.class;
    ApplicationStateCreator<ReadOnlyBean> creator = mockApplicationStateCreator();
    ReadOnlyBean aso = new ReadOnlyBean();

    Map<Class, ApplicationStateContribution> configuration =
        Collections.singletonMap(asoClass, new ApplicationStateContribution(strategyName, creator));

    train_get(source, strategyName, strategy);
    train_exists(strategy, asoClass, true);
    train_get(strategy, asoClass, creator, aso);

    replay();

    ApplicationStateManager manager = new ApplicationStateManagerImpl(configuration, source, null);

    assertSame(manager.getIfExists(asoClass), aso);

    verify();
  }