Package org.onebusaway.users.impl

Source Code of org.onebusaway.users.impl.UserPropertiesMigrationImplTest

/**
* Copyright (C) 2011 Brian Ferris <bdferris@onebusaway.org>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*         http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.users.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

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

import org.junit.Before;
import org.junit.Test;
import org.onebusaway.users.model.UserPropertiesV1;
import org.onebusaway.users.model.properties.Bookmark;
import org.onebusaway.users.model.properties.RouteFilter;
import org.onebusaway.users.model.properties.UserPropertiesV2;

public class UserPropertiesMigrationImplTest {

  private UserPropertiesMigrationImpl _service;

  @Before
  public void setup() {
    _service = new UserPropertiesMigrationImpl();
  }

  @Test
  public void testNeedsMigration() {

    UserPropertiesV1 v1 = new UserPropertiesV1();
    assertFalse(_service.needsMigration(v1, UserPropertiesV1.class));
    assertTrue(_service.needsMigration(v1, UserPropertiesV2.class));

    UserPropertiesV2 v2 = new UserPropertiesV2();
    assertTrue(_service.needsMigration(v2, UserPropertiesV1.class));
    assertFalse(_service.needsMigration(v2, UserPropertiesV2.class));
  }

  @Test
  public void testV1ToV2Migration() {

    UserPropertiesV1 v1 = new UserPropertiesV1();
    v1.setDefaultLocationLat(47.0);
    v1.setDefaultLocationLon(-122.0);
    v1.setDefaultLocationName("Seattle");
    v1.setLastSelectedStopId("1_29214");
    v1.setRememberPreferencesEnabled(true);
    v1.setBookmarkedStopIds(Arrays.asList("1_29214", "1_75403"));

    UserPropertiesV1 result = _service.migrate(v1, UserPropertiesV1.class);
    assertTrue(v1 == result);

    UserPropertiesV2 v2 = _service.migrate(v1, UserPropertiesV2.class);

    assertTrue(v2.isRememberPreferencesEnabled());

    assertEquals(47.0, v2.getDefaultLocationLat(), 0.0);
    assertEquals(-122.0, v2.getDefaultLocationLon(), 0.0);
    assertEquals("Seattle", v2.getDefaultLocationName());

    List<Bookmark> bookmarks = v2.getBookmarks();
    assertEquals(2, bookmarks.size());

    Bookmark bookmark = bookmarks.get(0);
    assertEquals(0,bookmark.getId());
    assertNull(bookmark.getName());
    assertEquals(Arrays.asList("1_29214"), bookmark.getStopIds());
    assertTrue(bookmark.getRouteFilter().getRouteIds().isEmpty());

    bookmark = bookmarks.get(1);
    assertEquals(1,bookmark.getId());
    assertNull(bookmark.getName());
    assertEquals(Arrays.asList("1_75403"), bookmark.getStopIds());
    assertTrue(bookmark.getRouteFilter().getRouteIds().isEmpty());
  }

  @Test
  public void testV2ToV1Migration() {

    UserPropertiesV2 v2 = new UserPropertiesV2();
    v2.setDefaultLocationLat(47.0);
    v2.setDefaultLocationLon(-122.0);
    v2.setDefaultLocationName("Seattle");
    v2.setRememberPreferencesEnabled(true);

    Bookmark b1 = new Bookmark(0,null,Arrays.asList("1_29214"),new RouteFilter());
    Bookmark b2 = new Bookmark(1,null,Arrays.asList("1_75403", "1_75414"), new RouteFilter());
    v2.setBookmarks(Arrays.asList(b1, b2));

    UserPropertiesV2 result = _service.migrate(v2, UserPropertiesV2.class);
    assertTrue(v2 == result);

    UserPropertiesV1 v1 = _service.migrate(v2, UserPropertiesV1.class);

    assertTrue(v1.isRememberPreferencesEnabled());

    assertNull(v1.getLastSelectedStopId());

    assertEquals(47.0, v1.getDefaultLocationLat(), 0.0);
    assertEquals(-122.0, v1.getDefaultLocationLon(), 0.0);
    assertEquals("Seattle", v1.getDefaultLocationName());

    assertEquals(Arrays.asList("1_29214", "1_75403", "1_75414"),
        v1.getBookmarkedStopIds());
  }
}
TOP

Related Classes of org.onebusaway.users.impl.UserPropertiesMigrationImplTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.