Package com.springsource.greenhouse.events.load

Source Code of com.springsource.greenhouse.events.load.JdbcEventLoaderRepositoryTest

/*
* Copyright 2012 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 com.springsource.greenhouse.events.load;

import static org.junit.Assert.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.joda.time.tz.CachedDateTimeZone;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;

import com.springsource.greenhouse.database.GreenhouseTestDatabaseBuilder;
import com.springsource.greenhouse.events.Event;
import com.springsource.greenhouse.events.EventRepository;
import com.springsource.greenhouse.events.JdbcEventRepository;
import com.springsource.greenhouse.events.Venue;

public class JdbcEventLoaderRepositoryTest {

  private EmbeddedDatabase db;

  private JdbcTemplate jdbcTemplate;
 
  private EventRepository eventRepository;
 
  private EventLoaderRepository eventLoaderRepository;
 
  @Before
  public void setup() {
    db = new GreenhouseTestDatabaseBuilder().member().group().activity().invite().venue().event().testData(getClass()).getDatabase();
    jdbcTemplate = new JdbcTemplate(db);
    eventLoaderRepository = new JdbcEventLoaderRepository(jdbcTemplate);
    eventRepository = new JdbcEventRepository(jdbcTemplate);
  }

  @After
  public void destroy() {
    if (db != null) {
      db.shutdown();
    }
  }

  @Test
  public void loadEventData() {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));
    assertEquals(1L, eventId);
    Event event = eventRepository.findEventBySlug("s2gx", 2012, 10, "test");
    assertEquals(1L, event.getId().longValue());
    assertEquals("Test Event", event.getTitle());
    assertEquals("test", event.getSlug());
    assertEquals("Test Event Description", event.getDescription());
//    assertEquals(new DateTime(2012, 10, 15, 1, 0, 0, 0, event.getTimeZone()), event.getStartTime().withZone(event.getTimeZone()));
//    assertEquals(new DateTime(2012, 10, 19, 0, 59, 59, 0, event.getTimeZone()), event.getEndTime().withZone(event.getTimeZone()));
    assertEquals(CachedDateTimeZone.forID("America/New_York"), event.getTimeZone());
    Set<Venue> venues = event.getVenues();
    assertEquals(1, venues.size());
    Venue venue = new ArrayList<Venue>(venues).get(0);
    assertEquals("Some Fancy Hotel", venue.getName());
    assertEquals("1234 North Street, Chicago, IL 60605", venue.getPostalAddress());
    assertEquals(41.89001, venue.getLocation().getLatitude().doubleValue(), .000000000001);
    assertEquals(-87.677765, venue.getLocation().getLongitude().doubleValue(), .000000000001);
    assertEquals("It's in Illinois", venue.getLocationHint());
  }
 
  @Test
  public void updateEventData() {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));
    assertEquals(1L, eventId);
    Event event = eventRepository.findEventBySlug("s2gx", 2012, 10, "test");
    assertEquals("Test Event", event.getTitle());
    Set<Venue> venues = event.getVenues();
    assertEquals(1, venues.size());
    Venue venue = new ArrayList<Venue>(venues).get(0);
    assertEquals("Some Fancy Hotel", venue.getName());
    long updatedEventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Updated Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Conference Hall", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));
    assertEquals(1L, updatedEventId);
    Event updatedEvent = eventRepository.findEventBySlug("s2gx", 2012, 10, "test");
    assertEquals("Updated Event", updatedEvent.getTitle());
    Set<Venue> updatedVenues = updatedEvent.getVenues();
    assertEquals(1, updatedVenues.size());
    Venue updatedVenue = new ArrayList<Venue>(updatedVenues).get(0);
    assertEquals("Some Conference Hall", updatedVenue.getName());
  }
 
  @Test
  public void loadLeaderData() throws SQLException {
    long leaderId = eventLoaderRepository.loadLeader(new LeaderData("Craig Walls", "Craig is the Spring Social project lead", "http://www.habuma.com", "habuma", "NFJS", 1234));
    assertEquals(1L, leaderId);
    jdbcTemplate.queryForObject("select id, name, bio, personalUrl, twitterUsername from Leader where id=?", new RowMapper<ResultSet>(){
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("id"));
        assertEquals("Craig Walls", rs.getString("name"));
        assertEquals("Craig is the Spring Social project lead", rs.getString("bio"));
        assertEquals("http://www.habuma.com", rs.getString("personalUrl"));
        assertEquals("habuma", rs.getString("twitterUsername"));
        return null;
      }
    }, leaderId);
   
    jdbcTemplate.queryForObject("select leader, sourceId, source from ExternalLeader where leader=?", new RowMapper<ResultSet>(){
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("leader"));
        assertEquals(1234L, rs.getLong("sourceId"));
        assertEquals("NFJS", rs.getString("source"));
        return null;
      }
    }, leaderId);   
  }
 
  @Test
  public void loadTimeSlot() throws SQLException {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));

    long timeSlotId = eventLoaderRepository.loadTimeSlot(new TimeSlotData(eventId, "Time Slot 1", "2012-10-15T00:00:00", "2012-10-15T01:30:00", "NFJS", 6296));
    assertEquals(1L, timeSlotId);
    jdbcTemplate.queryForObject("select id, event, label, startTime, endTime from EventTimeSlot where id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("id"));
        assertEquals(1L, rs.getLong("event"));
        assertEquals("Time Slot 1", rs.getString("label"));
        Timestamp startTime = rs.getTimestamp("startTime");
        Timestamp endTime = rs.getTimestamp("endTime");
//        assertEquals(new DateTime(2012, 10, 15, 0, 0, 0, 0, DateTimeZone.getDefault()).getMillis(), startTime.getTime());
//        assertEquals(new DateTime(2012, 10, 15, 1, 30, 0, 0, DateTimeZone.getDefault()).getMillis(), endTime.getTime());
        return null;
      }
    }, timeSlotId);
  }
 
  @Test
  public void updateTimeSlot() throws SQLException {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));

    long timeSlotId = eventLoaderRepository.loadTimeSlot(new TimeSlotData(eventId, "Time Slot 1", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "NFJS", 6296));
    assertEquals(1L, timeSlotId);
    jdbcTemplate.queryForObject("select id, event, label, startTime, endTime from EventTimeSlot where id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("id"));
        assertEquals(1L, rs.getLong("event"));
        Timestamp startTime = rs.getTimestamp("startTime");
        Timestamp endTime = rs.getTimestamp("endTime");
//        assertEquals(new DateTime(2012, 10, 15, 0, 0, 0, 0, DateTimeZone.getDefault()).getMillis(), startTime.getTime());
//        assertEquals(new DateTime(2012, 10, 18, 23, 59, 59, 0, DateTimeZone.getDefault()).getMillis(), endTime.getTime());
        return null;
      }
    }, timeSlotId);

   
    long updatedTimeSlotId = eventLoaderRepository.loadTimeSlot(new TimeSlotData(eventId, "Time Slot One", "2012-10-15T01:00:00", "2012-10-15T02:30:00", "NFJS", 6296));
    assertEquals(1L, updatedTimeSlotId);
    jdbcTemplate.queryForObject("select id, event, label, startTime, endTime from EventTimeSlot where id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("id"));
        assertEquals(1L, rs.getLong("event"));
        assertEquals("Time Slot One", rs.getString("label"));
        Timestamp startTime = rs.getTimestamp("startTime");
        Timestamp endTime = rs.getTimestamp("endTime");
//        assertEquals(new DateTime(2012, 10, 15, 1, 0, 0, 0, DateTimeZone.getDefault()).getMillis(), startTime.getTime());
//        assertEquals(new DateTime(2012, 10, 15, 2, 30, 0, 0, DateTimeZone.getDefault()).getMillis(), endTime.getTime());
        return null;
      }
    }, updatedTimeSlotId);
  }
 
  @Test
  public void loadEventSession() throws SQLException {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));
    long timeSlotId = eventLoaderRepository.loadTimeSlot(new TimeSlotData(eventId, "Time Slot 1", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "NFJS", 6296));

    int eventSessionId = 1;
    List<Long> leaderIds = Collections.emptyList();
    eventLoaderRepository.loadEventSession(new EventSessionData(eventId, eventSessionId, "What's new in Spring", "Come find out what's new in Spring", "#newspring", 1L, timeSlotId, "NFJS", 24409L, leaderIds));
    jdbcTemplate.queryForObject("select event, id, title, description, hashtag, venue, timeslot from EventSession where event=? and id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("event"));
        assertEquals(1L, rs.getLong("id"));
        assertEquals("What's new in Spring", rs.getString("title"));
        assertEquals("Come find out what's new in Spring", rs.getString("description"));
        assertEquals("#newspring", rs.getString("hashtag"));
        assertEquals(1, rs.getLong("venue"));
        assertEquals(1, rs.getLong("timeslot"));
        return null;
      }
    }, eventId, eventSessionId);
  }
 
  @Test
  public void updateEventSession() throws SQLException {
    long eventId = eventLoaderRepository.loadEvent(
        new EventData(1, "Test Event", "Test Event Description", "test", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "America/New_York", "NFJS", 297),
        new VenueData("Some Fancy Hotel", "1234 North Street, Chicago, IL 60605", 41.89001, -87.677765, "It's in Illinois"));
    long timeSlotId = eventLoaderRepository.loadTimeSlot(new TimeSlotData(eventId, "Time Slot 1", "2012-10-15T00:00:00", "2012-10-18T23:59:59", "NFJS", 6296));

    int eventSessionId = 1;
    List<Long> leaderIds = Collections.emptyList();
    eventLoaderRepository.loadEventSession(new EventSessionData(eventId, eventSessionId, "What's new in Spring", "Come find out what's new in Spring", "#newspring", 1L, timeSlotId, "NFJS", 24409L, leaderIds));
    jdbcTemplate.queryForObject("select event, id, title, description, hashtag, venue, timeslot from EventSession where event=? and id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("event"));
        assertEquals(1L, rs.getLong("id"));
        assertEquals("What's new in Spring", rs.getString("title"));
        assertEquals("Come find out what's new in Spring", rs.getString("description"));
        assertEquals("#newspring", rs.getString("hashtag"));
        assertEquals(1, rs.getLong("venue"));
        assertEquals(1, rs.getLong("timeslot"));
        return null;
      }
    }, eventId, eventSessionId);

    eventLoaderRepository.loadEventSession(new EventSessionData(eventId, eventSessionId, "What's new in Spring?", "Juergen gives the dish on the latest in Spring", "#spring3", 1L, timeSlotId, "NFJS", 24409L, leaderIds));
    jdbcTemplate.queryForObject("select event, id, title, description, hashtag, venue, timeslot from EventSession where event=? and id=?", new RowMapper<ResultSet>() {
      public ResultSet mapRow(ResultSet rs, int rowNum) throws SQLException {
        assertEquals(1L, rs.getLong("event"));
        assertEquals(1L, rs.getLong("id"));
        assertEquals("What's new in Spring?", rs.getString("title"));
        assertEquals("Juergen gives the dish on the latest in Spring", rs.getString("description"));
        assertEquals("#spring3", rs.getString("hashtag"));
        assertEquals(1, rs.getLong("venue"));
        assertEquals(1, rs.getLong("timeslot"));
        return null;
      }
    }, eventId, eventSessionId);
  }
}
TOP

Related Classes of com.springsource.greenhouse.events.load.JdbcEventLoaderRepositoryTest

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.