Java tutorial
/* * Copyright (c) 2009 JTeam B.V. * www.jteam.nl * All rights reserved. * * This software is the confidential and proprietary information of * JTeam B.V. ("Confidential Information"). * You shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement you * entered into with JTeam. */ package nl.jteam.mahout.gettingstarted.datamodel; import org.apache.mahout.cf.taste.common.Refreshable; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.model.file.FileDataModel; import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; import java.io.IOException; import java.util.List; import static java.util.Arrays.*; import static junit.framework.Assert.*; import static org.mockito.Mockito.*; /** * Checks if {@link ResourceDataModel} returns expected results. * * @author Frank Scholten */ public class ResourceDataModelTest { private ResourceDataModel dataModel; private FileDataModel delegateMock; @Before public void setup() { dataModel = new ResourceDataModel(); delegateMock = mock(FileDataModel.class); dataModel.delegate = delegateMock; } @Test public void testConstructor() throws IOException { ClassPathResource resource = new ClassPathResource("ratings.dat"); FileDataModel fileDataModel = new FileDataModel(resource.getFile()); ResourceDataModel resourceDataModel = new ResourceDataModel(resource); assertEquals(fileDataModel.getDataFile(), resourceDataModel.delegate.getDataFile()); } @Test public void testGetNumItems() throws TasteException { dataModel.getNumItems(); verify(delegateMock).getNumItems(); } @Test public void testGetNumUsers() throws TasteException { dataModel.getNumUsers(); verify(delegateMock).getNumUsers(); } @Test public void testGetPreferencesFromUser() throws TasteException { long userId = 1L; dataModel.getPreferencesFromUser(userId); verify(delegateMock).getPreferencesFromUser(userId); } @Test public void testGetItemIDsFromUser() throws TasteException { long userId = 1L; dataModel.getItemIDsFromUser(userId); verify(delegateMock).getItemIDsFromUser(userId); } @Test public void testGetUserIds() throws TasteException { dataModel.getUserIDs(); verify(delegateMock).getUserIDs(); } @Test public void testGetItemIds() throws TasteException { dataModel.getItemIDs(); verify(delegateMock).getItemIDs(); } @Test public void testGetPreferencesForItem() throws TasteException { long itemId = 1L; dataModel.getPreferencesForItem(itemId); verify(delegateMock).getPreferencesForItem(itemId); } @Test public void testGetPreferenceValue() throws TasteException { long userId = 1L; long itemId = 2L; dataModel.getPreferenceValue(userId, itemId); verify(delegateMock).getPreferenceValue(userId, itemId); } @Test public void testGetNumUsersWithPreferenceFor() throws TasteException { long itemId1 = 1L; long itemId2 = 2L; long itemId3 = 3L; dataModel.getNumUsersWithPreferenceFor(itemId1, itemId2, itemId3); verify(delegateMock).getNumUsersWithPreferenceFor(itemId1, itemId2, itemId3); } @Test public void testSetPreference() throws TasteException { long userId = 1L; long itemId = 2L; float value = 3F; dataModel.setPreference(userId, itemId, value); verify(delegateMock).setPreference(userId, itemId, value); } @Test public void testRemovePreference() throws TasteException { long userId = 1L; long itemId = 2L; dataModel.removePreference(userId, itemId); verify(delegateMock).removePreference(userId, itemId); } @Test public void testHasPreferences() throws TasteException { dataModel.hasPreferenceValues(); verify(delegateMock).hasPreferenceValues(); } @Test public void testRefresh() throws TasteException { FileDataModel original = dataModel.delegate; FileDataModel delegateMock = mock(FileDataModel.class); dataModel.delegate = delegateMock; Refreshable refreshable = mock(Refreshable.class); List<Refreshable> refreshables = asList(refreshable); dataModel.refresh(refreshables); verify(delegateMock).refresh(refreshables); dataModel.delegate = original; } }