Package in.partake.model.dao.access

Source Code of in.partake.model.dao.access.UserTwitterLinkAccessTest

package in.partake.model.dao.access;

import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import in.partake.app.PartakeApp;
import in.partake.base.PartakeException;
import in.partake.model.IPartakeDAOs;
import in.partake.model.access.Transaction;
import in.partake.model.dao.DAOException;
import in.partake.model.dao.PartakeConnection;
import in.partake.model.dto.UserTwitterLink;

import java.util.List;
import java.util.UUID;

import org.junit.Before;
import org.junit.Test;

public class UserTwitterLinkAccessTest extends AbstractDaoTestCaseBase<IUserTwitterLinkAccess, UserTwitterLink, UUID> {
    @Before
    public void setup() throws Exception {
        super.setup(PartakeApp.getDBService().getDAOs().getTwitterLinkageAccess());
    }

    @Override
    protected UserTwitterLink create(long pkNumber, String pkSalt, int objNumber) {
        UUID uuid = new UUID(pkNumber, pkSalt.hashCode());
        return new UserTwitterLink(uuid, objNumber, "userId" + objNumber, "screenName", "name", "accessToken", "accessTokenSecret", "profileImageURL");
    }

    @Test
    public void testToFindByTwitterId() throws Exception {
        new Transaction<Void>() {
            @Override
            protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
                UserTwitterLink link1 = create(0, "hoge", 1);
                link1.setTwitterId(0);
                UserTwitterLink link2 = create(1, "hoge", 2);
                link2.setTwitterId(1);

                dao.put(con, link1);
                dao.put(con, link2);


                assertThat(dao.findByTwitterId(con, 0).getId(), is(link1.getId()));
                assertThat(dao.findByTwitterId(con, 1).getId(), is(link2.getId()));
                return null;
            }
        }.execute();
    }

    @Test
    public void testToFindByUserId() throws Exception {
        new Transaction<Void>() {
            @Override
            protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
                UserTwitterLink link1 = create(0, "hoge", 1);
                link1.setUserId("userId1");
                UserTwitterLink link2 = create(1, "hoge", 2);
                link2.setUserId("userId2");

                dao.put(con, link1);
                dao.put(con, link2);

                assertThat(dao.findByUserId(con, "userId1").getId(), is(link1.getId()));
                assertThat(dao.findByUserId(con, "userId2").getId(), is(link2.getId()));
                return null;
            }
        }.execute();
    }

    @Test
    public void testToFindByScreenNamePrefix() throws Exception {
        new Transaction<Void>() {
            @Override
            protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
                String[] screenNames = new String[] {
                        "hoge", "hoge1", "hoge2", "hoge3", "hoge4",
                        "fuga", "fuga1", "fuga2", "fuga3", "fuga4",
                };
                UserTwitterLink[] links = new UserTwitterLink[10];
                for (int i = 0; i < 10; ++i) {
                    links[i] = create(i, "hoge", i);
                    links[i].setScreenName(screenNames[i]);
                    dao.put(con, links[i]);
                }

                List<UserTwitterLink> found = dao.findByScreenNamePrefix(con, "hoge", 10);
                assertThat(found.size(), is(5));
                assertThat(found, hasItem(is(links[0])));

                return null;
            }
        }.execute();
    }

    @Test
    public void testToFindByScreenNamePrefixWithEscapeCharacters() throws Exception {
        new Transaction<Void>() {
            @Override
            protected Void doExecute(PartakeConnection con, IPartakeDAOs daos) throws DAOException, PartakeException {
                String[] screenNames = new String[] {
                        "hoge""hoge1""hoge2""hoge3""hoge4",
                        "hoge%", "hoge%1", "hoge%2", "hoge%3", "hoge%4",
                        "hoge_", "hoge_1", "hoge_2", "hoge_3", "hoge_4",
                };
                UserTwitterLink[] links = new UserTwitterLink[15];
                for (int i = 0; i < 10; ++i) {
                    links[i] = create(i, "hoge", i);
                    links[i].setScreenName(screenNames[i]);
                    dao.put(con, links[i]);
                }

                List<UserTwitterLink> found = dao.findByScreenNamePrefix(con, "hoge%", 10);
                assertThat(found.size(), is(5));
                assertThat(found, hasItem(is(links[5])));

                return null;
            }
        }.execute();
    }
}
TOP

Related Classes of in.partake.model.dao.access.UserTwitterLinkAccessTest

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.