/* * * * Copyright 2000-2015 JetBrains s.r.o. * * * * 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 jetbrains.buildServer.clouds.vmware.stubs; import com.vmware.vim25.ManagedObjectReference; import com.vmware.vim25.mo.Folder; import com.vmware.vim25.mo.ManagedEntity; import junit.framework.Assert; /** * @author Sergey.Pak * Date: 2/10/2015 * Time: 2:01 PM */ public class FakeFolder extends Folder { private final String myName; private ManagedEntity myParent; public FakeFolder(String name) { this(name, createVMMor(name)); } protected FakeFolder(String name, ManagedObjectReference mor){ super(null, mor); myName = name; myParent = null; } @Override public String getName() { return myName; } @Override public ManagedEntity getParent() { return myParent; } public <T extends ManagedEntity> void setParent(final String parentName, Class<T> parentType) { if (parentType.isAssignableFrom(FakeDatacenter.class)){ setParent(FakeModel.instance().getDatacenter(parentName)); } else if (parentType.isAssignableFrom(Folder.class)){ setParent(FakeModel.instance().getFolder(parentName)); } if (myParent == null) { Assert.fail(String.format("Unable to set parent %s of type %s", parentName, parentType.getSimpleName())); } } public void setParent(final ManagedEntity parent) { myParent = parent; } private static ManagedObjectReference createVMMor(final String name){ return new ManagedObjectReference(){ @Override public String getVal() { return "group-" + name.hashCode(); } @Override public String get_value() { return getVal(); } @Override public String getType() { return "Folder"; } }; } }