/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* 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.kie.server.controller.impl.service;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.kie.server.api.model.KieContainerStatus;
import org.kie.server.api.model.KieScannerStatus;
import org.kie.server.api.model.ReleaseId;
import org.kie.server.controller.api.model.spec.Capability;
import org.kie.server.controller.api.model.spec.ContainerConfig;
import org.kie.server.controller.api.service.RuleCapabilitiesService;
import org.kie.server.controller.api.service.RuntimeManagementService;
import org.kie.server.controller.api.service.SpecManagementService;
import org.kie.server.controller.impl.KieServerInstanceManager;
import org.kie.server.controller.api.model.runtime.Container;
import org.kie.server.controller.api.model.spec.ContainerSpec;
import org.kie.server.controller.api.model.spec.ProcessConfig;
import org.kie.server.controller.api.model.spec.RuleConfig;
import org.kie.server.controller.api.model.spec.ServerTemplate;
import org.kie.server.controller.api.model.spec.ServerTemplateKey;
import static org.junit.Assert.*;
public abstract class AbstractServiceImplTest {
protected SpecManagementService specManagementService;
protected RuleCapabilitiesService ruleCapabilitiesService;
protected RuntimeManagementService runtimeManagementService;
protected KieServerInstanceManager kieServerInstanceManager;
protected ServerTemplate serverTemplate;
protected Container container;
protected ContainerSpec containerSpec;
protected void createServerTemplateWithContainer() {
serverTemplate = new ServerTemplate();
serverTemplate.setName("test server");
serverTemplate.setId(UUID.randomUUID().toString());
specManagementService.saveServerTemplate(serverTemplate);
Collection<org.kie.server.controller.api.model.spec.ServerTemplateKey> existing = specManagementService.listServerTemplateKeys();
assertNotNull(existing);
assertEquals(1, existing.size());
Map<Capability, ContainerConfig> configs = new HashMap<Capability, ContainerConfig>();
RuleConfig ruleConfig = new RuleConfig();
ruleConfig.setPollInterval(1000l);
ruleConfig.setScannerStatus(KieScannerStatus.STARTED);
configs.put(Capability.RULE, ruleConfig);
ProcessConfig processConfig = new ProcessConfig();
processConfig.setKBase("defaultKieBase");
processConfig.setKSession("defaultKieSession");
processConfig.setMergeMode("MERGE_COLLECTION");
processConfig.setRuntimeStrategy("PER_PROCESS_INSTANCE");
configs.put(Capability.PROCESS, processConfig);
containerSpec = new ContainerSpec();
containerSpec.setId("test container");
containerSpec.setServerTemplateKey(new ServerTemplateKey(serverTemplate.getId(), serverTemplate.getName()));
containerSpec.setReleasedId(new ReleaseId("org.kie", "kie-server-kjar", "1.0"));
containerSpec.setStatus(KieContainerStatus.STOPPED);
containerSpec.setConfigs(configs);
specManagementService.saveContainerSpec(serverTemplate.getId(), containerSpec);
container = new Container();
container.setServerInstanceId(serverTemplate.getId());
container.setServerTemplateId(serverTemplate.getId());
container.setResolvedReleasedId(containerSpec.getReleasedId());
container.setContainerName(containerSpec.getContainerName());
container.setContainerSpecId(containerSpec.getId());
container.setUrl("http://fake.server.net/kie-server");
container.setStatus(containerSpec.getStatus());
}
}