/**
 * Copyright 2014-2016 CyberVision, Inc.
 * <p/>
 * 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
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * 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.kaaproject.kaa.server.control.service;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.kaaproject.kaa.server.common.zk.gen.ConnectionInfo;
import org.kaaproject.kaa.server.common.zk.gen.OperationsNodeInfo;
import org.kaaproject.kaa.server.common.zk.gen.TransportMetaData;
import org.kaaproject.kaa.server.common.zk.gen.VersionConnectionInfoPair;
import org.kaaproject.kaa.server.resolve.OperationsServerResolver;
import org.springframework.beans.factory.annotation.Autowired;

import java.lang.reflect.Method;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DefaultControlServiceTest {

  @Autowired
  private DefaultControlService service;

  @Autowired
  private OperationsNodeInfo node;

  @Test
  public void writeLogWithoutByteBufferTest() throws Exception {
    final String format = "Update of node {} is pushed to resolver {}";
    String beforeReplacing = node.toString();

    Method method = service.getClass().getDeclaredMethod("writeLogWithoutByteBuffer", String.class, node.getClass(), OperationsServerResolver.class);
    method.setAccessible(true);
    method.invoke(service, format, node, null);

    Assert.assertEquals("Object corrupted, some fields changed and not recover", beforeReplacing, node.toString());
  }

  @Before
  public void setUp() {
    List<VersionConnectionInfoPair> connectionInfoList = new ArrayList<>();
    connectionInfoList.addAll(Arrays.asList(
        new VersionConnectionInfoPair(1, ByteBuffer.wrap(new byte[] {1, 2, 3})),
        new VersionConnectionInfoPair(2, ByteBuffer.wrap(new byte[] {4, 5, 6})),
        new VersionConnectionInfoPair(3, ByteBuffer.wrap(new byte[] {5, 6, 7}))
        ));

    List<VersionConnectionInfoPair> connectionInfoList2 = new ArrayList<>();
    connectionInfoList2.addAll(Arrays.asList(
        new VersionConnectionInfoPair(4, ByteBuffer.wrap(new byte[] {7, 8, 9})),
        new VersionConnectionInfoPair(5, ByteBuffer.wrap(new byte[] {1, 2, 4})),
        new VersionConnectionInfoPair(6, ByteBuffer.wrap(new byte[] {5, 6, 7}))
    ));

    List<TransportMetaData> transports = new ArrayList<>();
    transports.addAll(Arrays.asList(
        new TransportMetaData(1, 1, 100, connectionInfoList),
        new TransportMetaData(2, 2, 200, connectionInfoList2)
    ));

    node = new OperationsNodeInfo();
    node.setTransports(transports);
    node.setConnectionInfo(new ConnectionInfo(null, 0, ByteBuffer.wrap(new byte[] {101, 102, 103})));
    service = new DefaultControlService();
  }
}
@@ -1318,29 +1318,16 @@
 Test %7B%0A%0A
-  @Autowired%0A
   privat
@@ -1364,21 +1364,8 @@
 e;%0A%0A
-  @Autowired%0A
   pr

Remove redundant annotations