nl.jteam.mahout.gettingstarted.datamodel.ResourceDataModelTest.java Source code

Java tutorial

Introduction

Here is the source code for nl.jteam.mahout.gettingstarted.datamodel.ResourceDataModelTest.java

Source

/*
 * 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;
    }
}