/*
* Copyright (C) 2013-2017 NTT DATA Corporation
*
* 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.terasoluna.gfw.common.message;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.junit.Test;
import org.springframework.core.serializer.support.SerializationFailedException;
import org.springframework.util.SerializationUtils;
import org.terasoluna.gfw.common.message.ResultMessage;
import org.terasoluna.gfw.common.message.ResultMessageType;
import org.terasoluna.gfw.common.message.ResultMessages;
import static org.terasoluna.gfw.common.message.StandardResultMessageType.*;
public class ResultMessagesTest {
@Test(expected = IllegalArgumentException.class)
public void testConstructor() {
new ResultMessages(null);
}
@Test
public void testGetType() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
assertThat(messages.getType(), is((ResultMessageType) ERROR));
}
@Test
public void testGetMessages() {
ResultMessage msg1 = ResultMessage.fromCode("foo");
ResultMessage msg2 = ResultMessage.fromCode("bar");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR, msg1, msg2);
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void testAdd01() {
ResultMessage msg1 = ResultMessage.fromCode("foo");
ResultMessage msg2 = ResultMessage.fromCode("bar");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR, msg1);
messages.add(msg2);
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
System.out.println(messages);
}
@Test(expected = IllegalArgumentException.class)
public void testAdd02_null() {
ResultMessage msg1 = ResultMessage.fromCode("foo");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR, msg1);
messages.add((ResultMessage) null);
}
@Test
public void testAdd03() {
ResultMessage msg1 = ResultMessage.fromText("foo");
ResultMessage msg2 = ResultMessage.fromText("bar");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR, msg1);
messages.add(msg2);
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
System.out.println(messages);
}
@Test
public void testAdd11() {
ResultMessage msg1 = ResultMessage.fromCode("foo");
ResultMessage msg2 = ResultMessage.fromCode("bar");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.add("foo");
messages.add("bar");
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test(expected = IllegalArgumentException.class)
public void testAdd12_null() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.add("foo");
messages.add((String) null);
}
@Test
public void testAdd21() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.add("foo", "aa");
messages.add("bar", "bb");
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test(expected = IllegalArgumentException.class)
public void testAdd22_null() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.add("foo", "aa");
messages.add((String) null, "bb");
}
@Test
public void testAddAll01() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.addAll(msg1, msg2);
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test(expected = IllegalArgumentException.class)
public void testAddAll02_null() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.addAll((ResultMessage[]) null);
}
@Test
public void testAddAll11() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.addAll(Arrays.asList(msg1, msg2));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test(expected = IllegalArgumentException.class)
public void testAddAll12_null() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.addAll((Collection<ResultMessage>) null);
}
@Test
public void testIsNotEmpty01() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR)
.add("foo");
assertThat(messages.isNotEmpty(), is(true));
}
@Test
public void testIsNotEmpty02() {
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
assertThat(messages.isNotEmpty(), is(false));
}
@Test
public void testIterator() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = new ResultMessages((ResultMessageType) ERROR);
messages.addAll(Arrays.asList(msg1, msg2));
List<ResultMessage> result = new ArrayList<ResultMessage>();
for (ResultMessage message : messages) {
result.add(message);
}
assertThat(result, is(Arrays.asList(msg1, msg2)));
}
@Test
public void testError() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.error().add("foo", "aa").add(
"bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) ERROR));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@SuppressWarnings("deprecation")
@Test
public void testWarn() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.warn().add("foo", "aa").add(
"bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) WARN));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void testInfo() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.info().add("foo", "aa").add(
"bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) INFO));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void testSuccess() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.success().add("foo", "aa")
.add("bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) SUCCESS));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void testDanger() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.danger().add("foo", "aa").add(
"bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) DANGER));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void issue24_testWarning() {
ResultMessage msg1 = ResultMessage.fromCode("foo", "aa");
ResultMessage msg2 = ResultMessage.fromCode("bar", "bb");
ResultMessages messages = ResultMessages.warning().add("foo", "aa")
.add("bar", "bb");
assertThat(messages.getType(), is((ResultMessageType) WARNING));
assertThat(messages.getList(), is(Arrays.asList(msg1, msg2)));
}
@Test
public void testSerialization() {
try {
byte[] serialized = SerializationUtils
.serialize(new ResultMessages((ResultMessageType) ERROR));
SerializationUtils.deserialize(serialized);
} catch (SerializationFailedException e) {
fail();
}
}
}