/*
* Copyright 2014 Google Inc. All rights reserved.
*
* 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.google.samples.apps.iosched.server.schedule.model;
import static org.junit.Assert.*;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.samples.apps.iosched.server.schedule.model.InputJsonKeys.VendorAPISource;
import com.google.iosched.test.TestHelper;
import org.junit.Before;
import org.junit.Test;
public class DataModelTest {
private JsonDataSources sources;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
sources = new JsonDataSources();
sources.addSource(
new JsonDataSource(VendorAPISource.MainTypes.rooms,
TestHelper.readJsonTestDataFile("sample_rooms.json").getAsJsonArray()));
sources.addSource(
new JsonDataSource(VendorAPISource.MainTypes.categories,
TestHelper.readJsonTestDataFile("sample_categories.json").getAsJsonArray()));
JsonElement el = TestHelper.readJsonTestDataFile("sample_speakers.json");
sources.addSource(
new JsonDataSource(VendorAPISource.MainTypes.speakers,
el.getAsJsonObject().get("results").getAsJsonArray()));
el = TestHelper.readJsonTestDataFile("sample_topics.json");
sources.addSource(
new JsonDataSource(VendorAPISource.MainTypes.topics,
el.getAsJsonObject().get("results").getAsJsonArray()));
}
/**
* Test method for {@link com.google.iosched.model.DataExtractor#extractFromDataSources(com.google.iosched.model.JsonDataSources)}.
*/
@Test
public void testExtractFromDataSources() {
assertEquals(8, sources.getSource(VendorAPISource.MainTypes.rooms.name()).size());
assertEquals(28, sources.getSource(VendorAPISource.MainTypes.categories.name()).size());
assertEquals(44, sources.getSource(VendorAPISource.MainTypes.speakers.name()).size());
assertEquals(55, sources.getSource(VendorAPISource.MainTypes.topics.name()).size());
}
/**
* Test method for {@link com.google.iosched.model.DataExtractor#extractRooms(com.google.iosched.model.JsonDataSources)}.
*/
@Test
public void testExtractRooms() {
JsonArray rooms = new DataExtractor(false).extractRooms(sources);
assertEquals(8, rooms.size());
JsonObject firstRoom = rooms.get(0).getAsJsonObject();
String roomName = firstRoom.get(OutputJsonKeys.Rooms.name.name()).getAsString();
assertEquals(true, roomName.startsWith("Room "));
}
}