@Test public void canAddVmWithVirtioScsiControllerNotSupportedOs() { VM vm = createVm(); AddVmFromTemplateCommand<AddVmParameters> cmd = createVmFromTemplateCommand(vm); cluster = createCluster(); vm.setClusterId(cluster.getId()); mockStorageDomainDaoGetForStoragePool(); mockVmTemplateDaoReturnVmTemplate(); mockVerifyAddVM(cmd); mockConfig(); mockMaxPciSlots(); mockStorageDomainDaoGetAllStoragesForPool(20); mockUninterestingMethods(cmd); mockDisplayTypes(vm.getOs()); mockGraphicsDevices(vm.getId()); doReturn(true).when(cmd).checkCpuSockets(); doReturn(cluster).when(cmd).getCluster(); doReturn(createStoragePool()).when(cmd).getStoragePool(); cmd.getParameters().setVirtioScsiEnabled(true); when(osRepository.isSoundDeviceEnabled(any(Integer.class), any(Version.class))) .thenReturn(true); when(osRepository.getArchitectureFromOS(any(Integer.class))) .thenReturn(ArchitectureType.x86_64); when(osRepository.getDiskInterfaces(any(Integer.class), any(Version.class))) .thenReturn(new ArrayList<>(Collections.singletonList("VirtIO"))); mockGetAllSnapshots(cmd); cmd.initEffectiveCompatibilityVersion(); ValidateTestUtils.runAndAssertValidateFailure( cmd, EngineMessage.ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI); }
protected AddVmFromTemplateCommand<AddVmParameters> createVmFromTemplateCommand(VM vm) { AddVmParameters param = new AddVmParameters(); param.setVm(vm); AddVmFromTemplateCommand<AddVmParameters> concrete = new AddVmFromTemplateCommand<AddVmParameters>( param, CommandContext.createContext(param.getSessionId())) { @Override protected void initUser() { // Stub for testing } @Override protected void initTemplateDisks() { // Stub for testing } @Override protected void initStoragePoolId() { // Stub for testing } @Override public VmTemplate getVmTemplate() { return createVmTemplate(); } }; AddVmFromTemplateCommand<AddVmParameters> result = spy(concrete); doReturn(true).when(result).checkNumberOfMonitors(); doReturn(createVmTemplate()).when(result).getVmTemplate(); doReturn(true).when(result).validateCustomProperties(any(VmStatic.class), anyList()); mockDaos(result); mockBackend(result); initCommandMethods(result); result.poolPerDc = this.macPoolPerDc; result.postConstruct(); return result; }