/* * Copyright 2014-2016 CyberVision, Inc. * * 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.kaaproject.kaa.server.control.sdk; import org.junit.Assert; import org.junit.Test; import org.kaaproject.kaa.common.dto.admin.SdkPlatform; import org.kaaproject.kaa.common.dto.event.ApplicationEventAction; import org.kaaproject.kaa.common.dto.event.ApplicationEventMapDto; import org.kaaproject.kaa.server.control.service.sdk.SdkGenerator; import org.kaaproject.kaa.server.control.service.sdk.SdkGeneratorFactory; /** * The Class SdkGeneratorTest. */ public class SdkGeneratorTest { private ApplicationEventMapDto makeDto(String fqn, ApplicationEventAction action) { ApplicationEventMapDto dto = new ApplicationEventMapDto(); dto.setFqn(fqn); dto.setAction(action); return dto; } /** * Test create sdk generator. * * @throws Exception the exception */ @SuppressWarnings("static-access") @Test public void testCreateSdkGenerator() throws Exception { SdkGeneratorFactory factory = new SdkGeneratorFactory(); SdkGenerator generator = factory.createSdkGenerator(SdkPlatform.JAVA); Assert.assertNotNull(generator); generator = factory.createSdkGenerator(SdkPlatform.CPP); Assert.assertNotNull(generator); generator = factory.createSdkGenerator(SdkPlatform.C); Assert.assertNotNull(generator); generator = factory.createSdkGenerator(SdkPlatform.OBJC); Assert.assertNotNull(generator); // // String profileSchema = "{\"type\":\"record\",\"name\":\"SuperProfile\",\"namespace\":\"org.kaaproject.kaa.common.endpoint.gen.test\",\"fields\":[{\"name\":\"profileBody\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}}]}"; // // EventFamilyMetadata efm1 = Mockito.mock(EventFamilyMetadata.class); // Mockito.when(efm1.getEcfName()).thenReturn("1ecf"); // Mockito.when(efm1.getVersion()).thenReturn(3); // // EventFamilyMetadata efm2 = Mockito.mock(EventFamilyMetadata.class); // Mockito.when(efm2.getEcfName()).thenReturn("2ecf"); // Mockito.when(efm2.getVersion()).thenReturn(2); // // List<EventFamilyMetadata> eList = Arrays.asList(efm1, efm2); // // ConnectionInfo ci = new Mockito().mock(ConnectionInfo.class); // Mockito.when(ci.getPublicKey()).thenReturn(ByteBuffer.wrap(new byte[] {1, 2, 3})); // // IpComunicationParameters icp1 = Mockito.mock(IpComunicationParameters.class); // Mockito.when(icp1.getHostName()).thenReturn("http.server"); // Mockito.when(icp1.getPort()).thenReturn(80); // // IpComunicationParameters icp2 = Mockito.mock(IpComunicationParameters.class); // Mockito.when(icp2.getHostName()).thenReturn("kaatcp.server"); // Mockito.when(icp2.getPort()).thenReturn(999); // // ZkHttpComunicationParameters hcp = Mockito.mock(ZkHttpComunicationParameters.class); // Mockito.when(hcp.getZkComunicationParameters()).thenReturn(icp1); // // ZkKaaTcpComunicationParameters kcp = Mockito.mock(ZkKaaTcpComunicationParameters.class); // Mockito.when(kcp.getZkComunicationParameters()).thenReturn(icp2); // // ZkSupportedChannel sch1 = Mockito.mock(ZkSupportedChannel.class); // Mockito.when(sch1.getChannelType()).thenReturn(ZkChannelType.HTTP); // Mockito.when(sch1.getCommunicationParameters()).thenReturn(hcp); // // ZkSupportedChannel sch2 = Mockito.mock(ZkSupportedChannel.class); // Mockito.when(sch2.getChannelType()).thenReturn(ZkChannelType.KAATCP); // Mockito.when(sch2.getCommunicationParameters()).thenReturn(kcp); // // BootstrapSupportedChannel bsc1 = Mockito.mock(BootstrapSupportedChannel.class); // Mockito.when(bsc1.getZkChannel()).thenReturn(sch1); // // BootstrapSupportedChannel bsc2 = Mockito.mock(BootstrapSupportedChannel.class); // Mockito.when(bsc2.getZkChannel()).thenReturn(sch2); // // List<BootstrapSupportedChannel> supportedChannel = Arrays.asList(bsc1, bsc2); // // BootstrapNodeInfo info1 = Mockito.mock(BootstrapNodeInfo.class); // Mockito.when(info1.getConnectionInfo()).thenReturn(ci); // Mockito.when(info1.getSupportedChannelsArray()).thenReturn(supportedChannel); // // List<BootstrapNodeInfo> bList = Arrays.asList(info1, info1); // // List<EventFamilyMetadata> eventFamilies = new ArrayList<EventFamilyMetadata>(); // EventFamilyMetadata eventF1 = new EventFamilyMetadata(); // eventF1.setEcfClassName("PlayerClassFamily"); // eventF1.setEcfSchema("[{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"DeviceInfoRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"object\",\"name\":\"DeviceInfo\",\"fields\":[{\"name\":\"model\",\"type\":[\"string\",\"null\"]},{\"name\":\"product\",\"type\":[\"string\",\"null\"]},{\"name\":\"manufacturer\",\"type\":[\"string\",\"null\"]},{\"name\":\"device\",\"type\":[\"string\",\"null\"]},{\"name\":\"brand\",\"type\":[\"string\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"DeviceInfoResponse\",\"fields\":[ {\"name\":\"deviceInfo\",\"type\":[\"org.kaaproject.kaa.demo.player.DeviceInfo\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PlayListRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"object\",\"name\":\"SongInfo\",\"fields\":[{\"name\":\"title\",\"type\":[\"string\",\"null\"]},{\"name\":\"artist\",\"type\":[\"string\",\"null\"]},{\"name\":\"url\",\"type\":[\"string\",\"null\"]},{\"name\":\"displayName\",\"type\":[\"string\",\"null\"]},{\"name\":\"duration\",\"type\":[\"int\",\"null\"]},{\"name\":\"album\",\"type\":[\"string\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PlayListResponse\",\"fields\":[ {\"name\":\"playList\",\"type\":[{\"type\":\"array\",\"items\":\"org.kaaproject.kaa.demo.player.SongInfo\"},\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PlayRequest\",\"fields\":[{\"name\":\"url\",\"type\":[\"string\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PauseRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"StopRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PlaybackInfoRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"enum\",\"classType\":\"object\",\"name\":\"PlaybackStatus\",\"symbols\":[\"PLAYING\",\"PAUSED\",\"STOPPED\"]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"object\",\"name\":\"PlaybackInfo\",\"fields\":[{\"name\":\"url\",\"type\":[\"string\",\"null\"]},{\"name\":\"time\",\"type\":[\"int\",\"null\"]},{\"name\":\"status\",\"type\":[\"org.kaaproject.kaa.demo.player.PlaybackStatus\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"PlaybackInfoResponse\",\"fields\":[ {\"name\":\"playbackInfo\",\"type\":[\"org.kaaproject.kaa.demo.player.PlaybackInfo\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"BatteryInfoRequest\",\"fields\":[]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"enum\",\"classType\":\"object\",\"name\":\"BatteryChargingStatus\",\"symbols\":[\"NOT_CHARGING\",\"CHARGING\",\"CHARGED\"]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"object\",\"name\":\"BatteryInfo\",\"fields\":[{\"name\":\"batteryLife\",\"type\":[\"int\",\"null\"]},{\"name\":\"chargingStatus\",\"type\":[\"org.kaaproject.kaa.demo.player.BatteryChargingStatus\",\"null\"]}]},{\"namespace\":\"org.kaaproject.kaa.demo.player\",\"type\":\"record\",\"classType\":\"event\",\"name\":\"BatteryInfoResponse\",\"fields\":[{\"name\":\"batteryInfo\",\"type\":[\"org.kaaproject.kaa.demo.player.BatteryInfo\",\"null\"]}]}]"); // eventF1.setEcfName("Player Event Class Family"); // eventF1.setEcfNamespace("org.kaaproject.kaa.demo.player"); // // List<ApplicationEventMapDto> appMap = new ArrayList<>(); // // appMap.add(makeDto("org.kaaproject.kaa.demo.player.DeviceInfoRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.DeviceInfoResponse", ApplicationEventAction.SOURCE)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PlayListRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PlayListResponse", ApplicationEventAction.SOURCE)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PlayRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PauseRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.StopRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PlaybackInfoRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.PlaybackInfoResponse", ApplicationEventAction.SOURCE)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.BatteryInfoRequest", ApplicationEventAction.SINK)); // appMap.add(makeDto("org.kaaproject.kaa.demo.player.BatteryInfoResponse", ApplicationEventAction.SOURCE)); // // eventF1.setEventMaps(appMap); // eventFamilies.add(eventF1); // // Sdk sdk = generator.generateSdk("test", bList, "token", 7, 6, 5, 4, profileSchema, null, null, null, eventFamilies, null); // // // String prefixHome = "/home/dyosick/"; // // FileOutputStream fos = new FileOutputStream(prefixHome + "sdk.tar.gz"); // // fos.write(sdk.getData()); // // fos.close(); } }