Java tutorial
/* * Copyright 2012 AMG.lab, a Bull Group Company * * 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.xlcloud.service.transformer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.List; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.apache.log4j.Logger; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.xlcloud.service.Session.Endpoints.Endpoint; import org.xlcloud.service.VirtualCluster; import org.xlcloud.service.model.VirtualClusterModel; /** * JUnit test suite for testing dozer transformations between * {@link VirtualCluster} and {@link VirtualClusterModel}. * * @author Maciej Osyda, AMG.net */ public class VirtualClusterTransformerTest extends TransformerTestSupport { private static final Logger LOG = Logger.getLogger(VirtualClusterTransformerTest.class); private Transformer<VirtualClusterModel, VirtualCluster> vcTransformer; @Before public void initTransformer() { this.vcTransformer = new DozerTransformer<VirtualClusterModel, VirtualCluster>(VirtualClusterModel.class, VirtualCluster.class); } @Test public void testTwoWayTransform() { VirtualCluster dto = randomVCluster(Mode.FULL); LOG.info("dto: " + ToStringBuilder.reflectionToString(dto, ToStringStyle.MULTI_LINE_STYLE)); VirtualClusterModel modelFromDto = vcTransformer.transformFromDto(dto); LOG.info("model: " + ToStringBuilder.reflectionToString(modelFromDto, ToStringStyle.MULTI_LINE_STYLE)); VirtualCluster dtoFromModel = vcTransformer.transformFromModel(modelFromDto); LOG.info("dtoFromModel: " + ToStringBuilder.reflectionToString(dtoFromModel, ToStringStyle.MULTI_LINE_STYLE)); assertEquals(dto.getId(), dtoFromModel.getId()); assertEquals(dto.getName(), dtoFromModel.getName()); assertEquals(dto.getProjectId(), dtoFromModel.getProjectId()); assertEquals(dto.getVirtualClusterDefinitionId(), dtoFromModel.getVirtualClusterDefinitionId()); Assert.assertTrue(dto.getSessions().getSession().size() > 0); //we don't store sessions in database Assert.assertTrue(dtoFromModel.getSessions() == null); assertParameters(dto.getParameters(), dtoFromModel.getParameters()); } private void assertEndpoints(List<Endpoint> endpoints, List<Endpoint> endpoints2) { assertEquals(endpoints.size(), endpoints2.size()); for (Endpoint e1 : endpoints) { boolean serviceFound = false; for (Endpoint e2 : endpoints2) { if (e1.getAddress() != null && e1.getAddress().equals(e2.getAddress())) { serviceFound = true; Assert.assertNotNull(e1.getEndpointName()); assertEquals(e1.getEndpointName(), e1.getEndpointName()); } } assertTrue(serviceFound); } } private void assertParameters(VirtualCluster.Parameters parameters, VirtualCluster.Parameters parameters2) { assertEquals(parameters.getParameter().size(), parameters2.getParameter().size()); for (VirtualCluster.Parameters.Parameter s1 : parameters.getParameter()) { boolean serviceFound = false; for (VirtualCluster.Parameters.Parameter s2 : parameters2.getParameter()) { if (s1.getName() != null && s1.getName().equals(s2.getName())) { serviceFound = true; Assert.assertNotNull(s1.getValue()); assertEquals(s1.getValue(), s1.getValue()); } } assertTrue(serviceFound); } } }