/*
* 2012-3 Red Hat Inc. and/or its affiliates and other contributors.
*
* 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.overlord.gadgets.server;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.overlord.gadgets.server.model.Gadget;
import org.overlord.gadgets.server.model.Page;
import org.overlord.gadgets.server.model.User;
import org.overlord.gadgets.server.model.Widget;
import org.overlord.gadgets.server.model.WidgetPreference;
import org.overlord.gadgets.server.service.GadgetService;
import org.overlord.gadgets.server.service.UserManager;
import com.google.inject.Guice;
import com.google.inject.Injector;
/**
* @author: Jeff Yu
* @date: 15/03/12
*/
public class UserManagerTest {
private static UserManager userManager;
private static GadgetService gadgetService;
private static User user;
private static Page page;
static {
user = new User();
user.setName("jeff");
user.setDisplayName("Jeff Yu");
user.setEmail("jeff@test.com");
page = new Page();
page.setName("Home");
page.setColumns(2);
page.setUser(user);
}
@BeforeClass
public static void setUp() throws Exception{
Injector injector = Guice.createInjector(new CoreModule());
try {
userManager = injector.getInstance(UserManager.class);
gadgetService = injector.getInstance(GadgetService.class);
userManager.createUser(user);
userManager.addPage(page, user);
} catch (Throwable t) {
t.printStackTrace();
Assert.fail("Failed to initialize: "+t);
}
}
@Test
public void testGetUserById() throws Exception {
User theUser = userManager.getUserById(user.getId());
Assert.assertTrue(theUser.getId() == user.getId());
}
@Test
public void testGetUser() throws Exception {
User theUser = userManager.getUser("jeff");
Assert.assertTrue(theUser.getId() == user.getId());
}
@Test
public void testGetAllUsers() throws Exception {
List<User> users = userManager.getAllUser();
Assert.assertTrue(users.size() > 0);
}
@Test
public void testGetAllGadgets() throws Exception {
List<Gadget> gadgets = gadgetService.getAllGadgets(0, 10);
Assert.assertTrue(gadgets.size() == 5);
}
@Test
public void testGetGadgetById() throws Exception {
Gadget gadget = gadgetService.getGadgetById(1);
Assert.assertTrue(gadget.getId() == 1);
}
@Test
public void testGetGadgetsCount() throws Exception {
int result = gadgetService.getAllGadgetsNum();
Assert.assertTrue(result == 5);
}
@Test
public void testGetUserPage() throws Exception {
List<Page> pages = userManager.getPages(user.getId());
Assert.assertTrue(pages.size() > 0);
}
@Test
public void testAddGadgetToPageAndRemoveWidget() throws Exception {
Gadget gadget = gadgetService.getGadgetById(1);
Page thePage = userManager.getPage(page.getId());
gadgetService.addGadgetToPage(gadget, thePage);
List<Widget> widgets = userManager.getPage(page.getId()).getWidgets();
Assert.assertTrue(widgets.size() == 1);
Widget theWidget = widgets.get(0);
userManager.removeWidget(theWidget.getId());
Widget w = userManager.getWidgetById(theWidget.getId());
Assert.assertNull(w);
widgets = userManager.getPage(page.getId()).getWidgets();
Assert.assertEquals(widgets.size(),0);
}
@Test
public void testUpdateWidgetPref() throws Exception {
Gadget gadget = gadgetService.getGadgetById(1);
Page thePage = userManager.getPage(page.getId());
gadgetService.addGadgetToPage(gadget, thePage);
List<Widget> widgets = userManager.getPage(page.getId()).getWidgets();
Assert.assertTrue(widgets.size() == 1);
List<WidgetPreference> wps = new ArrayList<WidgetPreference>();
WidgetPreference wp = new WidgetPreference();
wp.setName("testName");
wp.setValue("testValue");
wps.add(wp);
WidgetPreference wp2 = new WidgetPreference();
wp2.setName("testName2");
wp2.setValue("testValue2");
wps.add(wp2);
userManager.updateWidgetPreference(widgets.get(0).getId(), wps);
Widget theWidget = widgets.get(0);
Widget w = userManager.getWidgetById(theWidget.getId());
Assert.assertTrue(w.getPrefs().size() == 2);
Assert.assertEquals("testName", w.getPrefs().get(0).getName());
userManager.removeWidget(theWidget.getId());
}
}