Package org.internna.iwebmvc.parsers

Source Code of org.internna.iwebmvc.parsers.PollParserTest

/*
* Copyright 2002-2007 the original author or authors.
*
* 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.internna.iwebmvc.parsers;

import org.junit.Test;
import org.junit.Before;
import org.junit.runner.RunWith;
import java.util.List;
import java.util.Locale;
import java.util.ArrayList;
import org.internna.iwebmvc.dao.DAO;
import org.internna.iwebmvc.dao.SecurityDAO;
import org.internna.iwebmvc.model.I18nText;
import org.internna.iwebmvc.model.LocalizedValue;
import org.internna.iwebmvc.model.Poll;
import org.internna.iwebmvc.model.PollOption;
import org.internna.iwebmvc.model.PollVote;
import org.internna.iwebmvc.model.security.RoleImpl;
import org.internna.iwebmvc.model.security.UserImpl;
import org.springframework.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import static org.junit.Assert.*;

@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(defaultRollback = true)
@ContextConfiguration(locations = {"/spring.xml", "/documents.xml"})
public class PollParserTest {

    @Autowired private DAO baseDao;
    @Autowired private SecurityDAO securityDAO;
    @Autowired private PollParser pollParser;

    @Before
    public void init() throws Exception {
        securityDAO.createAuthority("polladmin");
        UserImpl user = new UserImpl();
        user.setUsername("poller");
        user.setName("Poller");
        user.setPassword("poller");
        user.addRole((RoleImpl) securityDAO.findAuthority("polladmin"));
        securityDAO.createUser(user);
        Poll clubPoll = new Poll();
        clubPoll.setQuestion(new I18nText());
        clubPoll.getQuestion().add(new Locale("en"), "What's your favorite european football club?");
        clubPoll.getQuestion().add(new Locale("es"), "�Cual es tu equipo de futbol favorito de Europa?");
        clubPoll.setStoreVotes(true);
        clubPoll.setRandomizeOptions(true);
        clubPoll.setAllowAnonymousVotes(true);
        List<PollOption> options = new ArrayList<PollOption>(5);
        options.add(new PollOption());
        options.get(0).setPoll(clubPoll);
        options.get(0).setOrder(0);
        options.get(0).setTotalVotes(2);
        options.get(0).setAnswer(new I18nText());
        options.get(0).getAnswer().add(new Locale("en"), "Real Madrid");
        options.get(0).getAnswer().add(new Locale("es"), "Real Madrid C.F.");
        List<PollVote> votes = new ArrayList<PollVote>(2);
        votes.add(new PollVote());
        votes.get(0).setIP("127.0.0.4");
        votes.get(0).setOption(options.get(0));
        votes.add(new PollVote());
        votes.get(1).setIP("127.0.0.2");
        votes.get(1).setOption(options.get(0));
        options.get(0).setVotes(votes);
        options.add(new PollOption());
        options.get(1).setPoll(clubPoll);
        options.get(1).setOrder(1);
        options.get(1).setTotalVotes(1);
        options.get(1).setAnswer(new I18nText());
        options.get(1).getAnswer().add(new Locale("en"), "AC Milan");
        options.get(1).getAnswer().add(new Locale("es"), "AC Milan");
        List<PollVote> votes2 = new ArrayList<PollVote>(1);
        votes2.add(new PollVote());
        votes2.get(0).setIP("192.168.1.8");
        votes2.get(0).setOption(options.get(1));
        options.get(1).setVotes(votes2);
        options.add(new PollOption());
        options.get(2).setPoll(clubPoll);
        options.get(2).setOrder(2);
        options.get(2).setTotalVotes(2);
        options.get(2).setAnswer(new I18nText());
        options.get(2).getAnswer().add(new Locale("en"), "Manchester United");
        options.get(2).getAnswer().add(new Locale("es"), "Manchester United");
        List<PollVote> votes3 = new ArrayList<PollVote>(2);
        votes3.add(new PollVote());
        votes3.get(0).setIP("192.168.1.2");
        votes3.get(0).setOption(options.get(2));
        votes3.add(new PollVote());
        votes3.get(1).setAuthor((UserImpl) securityDAO.findUser("poller"));
        votes3.get(1).setOption(options.get(2));
        options.get(2).setVotes(votes3);
        options.add(new PollOption());
        options.get(3).setPoll(clubPoll);
        options.get(3).setOrder(3);
        options.get(3).setTotalVotes(0);
        options.get(3).setAnswer(new I18nText());
        options.get(3).getAnswer().add(new Locale("en"), "Bayern Munich");
        options.get(3).getAnswer().add(new Locale("es"), "Bayern Munich");
        options.add(new PollOption());
        options.get(4).setPoll(clubPoll);
        options.get(4).setOrder(4);
        options.get(4).setTotalVotes(1);
        options.get(4).setAnswer(new I18nText());
        options.get(4).getAnswer().add(new Locale("en"), "PSV Eindhoven");
        options.get(4).getAnswer().add(new Locale("es"), "PSV Eindhoven");
        List<PollVote> votes4 = new ArrayList<PollVote>(1);
        votes4.add(new PollVote());
        votes4.get(0).setIP("192.168.1.1");
        votes4.get(0).setOption(options.get(4));
        options.get(4).setVotes(votes4);
        clubPoll.setOptions(options);
        baseDao.create(clubPoll);
        baseDao.flush();
        assertTrue(baseDao.find(PollOption.class, 0, 100).size() == 5);
        assertFalse(CollectionUtils.isEmpty(baseDao.find(Poll.class, 0, 100)));
    }

    @Test
    public void testParse() {
        assertNull(pollParser.parse(null));
        Poll p = new Poll();
        assertEquals(p, pollParser.parse(p));
        p.setOptions(new ArrayList<PollOption>(1));
        p.addOption(new PollOption());
        p = pollParser.parse(p);
        assertEquals(p, p.getOptions().iterator().next().getPoll());
    }

    @Test
    public void testParseCont() {
        Poll p = new Poll();
        p.setId(baseDao.first(Poll.class).getId());
        p = pollParser.parse(p);
        assertNull(p.getOptions());
        assertNull(p.getQuestion());
    }

    @Test
    public void testParseContMore() {
        Poll p = new Poll();
        p.setId(baseDao.first(Poll.class).getId());
        p.setQuestion(new I18nText());
        p.getQuestion().add(new Locale("en"), "club");
        p.getQuestion().add(new Locale("es"), "equipo");
        p = pollParser.parse(p);
        assertNotNull(p.getQuestion().getId());
        assertEquals("club", p.getQuestion().getData().get(0).getTranslation());
    }

    @Test
    public void testParseContOther() {
        Poll p = new Poll();
        p.setId(baseDao.first(Poll.class).getId());
        PollOption aPollOption = baseDao.first(PollOption.class);
        PollOption copy = new PollOption();
        copy.setId(aPollOption.getId());
        copy.setAnswer(new I18nText());
        for (LocalizedValue value : aPollOption.getAnswer().getData())
            copy.getAnswer().add(value);
        copy.getAnswer().add(new Locale("it"), "x");
        p.addOption(copy);
        PollOption newOption = new PollOption();
        newOption.setAnswer(new I18nText());
        newOption.getAnswer().add(new Locale("en"), "a");
        newOption.getAnswer().add(new Locale("en"), "b");
        p.addOption(newOption);
        p = pollParser.parse(p);
        assertTrue(p.getOptions().size() == 2);
        assertTrue(p.getOptions().iterator().next().getAnswer().getData().size() == 2);
        p.setQuestion(new I18nText());
        p.getQuestion().add(new Locale("en"), "What's your favorite european football club?");
        baseDao.update(p);
        assertTrue(baseDao.find(Poll.class, 0, 100).size() == 1);
        assertTrue(baseDao.find(PollOption.class, 0, 100).size() == 2);
    }

}
TOP

Related Classes of org.internna.iwebmvc.parsers.PollParserTest

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.