/*
* Copyright 2014 Alexey Plotnik
*
* 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.stem.topology;
import org.junit.Assert;
import org.junit.Test;
import org.stem.api.response.StemResponse;
import org.stem.coordination.Event;
import org.stem.utils.JsonUtils;
public class EventSerializationTest {
@Test
public void serialization() throws Exception {
Event original = Event.create(Event.Type.JOIN);
StemResponse resp = new Event.Join(Event.Join.Result.ERROR, "Node already exist in topology!");
original.setResponse(resp);
String json = JsonUtils.encode(original);
Event decoded = JsonUtils.decode(json, Event.class);
Event.Join response = (Event.Join) decoded.getResponse();
Assert.assertEquals(decoded.getId(), original.getId());
Assert.assertEquals(decoded.getType(), original.getType());
Assert.assertEquals(response.getResult(), Event.Join.Result.ERROR);
Assert.assertEquals(response.getMessage(), "Node already exist in topology!");
}
static class StubResponse extends StemResponse {
public static String a = "test";
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public StubResponse() {
}
}
}