示例#1
0
    public void HandleBundleMerge_Merges_BundlesWithChildrenCorrectly()
    {
        string folderName  = "folder";
        string bundle1Name = "bundle1";
        string bundle2Name = folderName + "/bundle2";

        BundleFolderConcreteInfo concrete        = new BundleFolderConcreteInfo(folderName, ABModelUtil.Root);
        BundleDataInfo           bundle1DataInfo = new BundleDataInfo(bundle1Name, ABModelUtil.Root);
        BundleDataInfo           bundle2DataInfo = new BundleDataInfo(bundle2Name, concrete);

        concrete.AddChild(bundle2DataInfo);

        List <string> listOfPrefabs = new List <string>();

        listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle1Name, String.Empty));
        listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle2Name, String.Empty));
        listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle2Name, String.Empty));

        TestUtil.ExecuteCodeAndCleanupAssets(() =>
        {
            Model.HandleBundleMerge(new BundleInfo[] { bundle1DataInfo }, bundle2DataInfo);

            Assert.AreEqual(1, AssetDatabase.GetAllAssetBundleNames().Length, GetAllElementsAsString(AssetDatabase.GetAllAssetBundleNames()));
            Assert.AreEqual(bundle2Name, AssetDatabase.GetAllAssetBundleNames()[0]);

            //Make sure every asset now has bundle1 as the bundle name
            foreach (string prefab in listOfPrefabs)
            {
                Assert.AreEqual(bundle2Name, AssetImporter.GetAtPath(prefab).assetBundleName);
            }
        }, listOfPrefabs);
    }
示例#2
0
    public void HandleBundleReparent_MovesBundleFolderVariant_ToCorrectParent()
    {
        BundleFolderConcreteInfo concreteFolder      = Model.CreateEmptyBundleFolder() as BundleFolderConcreteInfo;
        BundleFolderConcreteInfo startParent         = Model.CreateEmptyBundleFolder() as BundleFolderConcreteInfo;
        BundleVariantDataInfo    bundleVariantFolder = Model.CreateEmptyVariant(new BundleVariantFolderInfo("v1", startParent)) as BundleVariantDataInfo;

        Model.HandleBundleReparent(new BundleInfo[] { bundleVariantFolder }, concreteFolder);

        Assert.AreNotEqual(String.Empty, bundleVariantFolder.parent.m_Name.bundleName);
        Assert.AreEqual(concreteFolder, bundleVariantFolder.parent);
    }
示例#3
0
    public void HandleBundleReparent_MovesBundleVariant_ToCorrectParent()
    {
        BundleFolderConcreteInfo concreteFolder    = Model.CreateEmptyBundleFolder() as BundleFolderConcreteInfo;
        BundleFolderConcreteInfo subConcreteFolder = Model.CreateEmptyBundleFolder(concreteFolder) as BundleFolderConcreteInfo;
        BundleFolderConcreteInfo startParent       = Model.CreateEmptyBundleFolder(subConcreteFolder) as BundleFolderConcreteInfo;

        BundleVariantDataInfo bundleVariantDataInfo = new BundleVariantDataInfo("v1", startParent);

        Model.HandleBundleReparent(new BundleInfo[] { bundleVariantDataInfo }, concreteFolder);
        Assert.AreEqual(concreteFolder, bundleVariantDataInfo.parent);
    }
        private void CreateFolder(object context)
        {
            BundleFolderConcreteInfo folder = null;
            var selectedNodes = context as List <BundleTreeItem>;

            if (selectedNodes != null && selectedNodes.Count > 0)
            {
                folder = selectedNodes[0].bundle as BundleFolderConcreteInfo;
            }
            CreateFolderUnderParent(folder);
        }
示例#5
0
    public void HandleBundleReparent_MovesBundleDataInfoBundles_ToTheCorrectParent()
    {
        BundleDataInfo           dataInfo       = new BundleDataInfo("bundle1", ABModelUtil.Root);
        BundleFolderConcreteInfo concreteFolder = new BundleFolderConcreteInfo("folder1", ABModelUtil.Root);

        ABModelUtil.Root.AddChild(dataInfo);
        ABModelUtil.Root.AddChild(concreteFolder);

        Model.HandleBundleReparent(new BundleInfo[] { dataInfo }, concreteFolder);

        Assert.AreEqual(dataInfo.parent.m_Name.bundleName, concreteFolder.m_Name.bundleName);
    }
示例#6
0
    public void HandleBundleReparent_MoveBundleFolderInfo_ToTheCorrectParent()
    {
        BundleFolderConcreteInfo concreteFolder    = new BundleFolderConcreteInfo("folder1", ABModelUtil.Root);
        BundleFolderConcreteInfo subConcreteFolder = new BundleFolderConcreteInfo("subFolder1", concreteFolder);
        BundleFolderConcreteInfo folderToBeMoved   = new BundleFolderConcreteInfo("folder2", subConcreteFolder);

        ABModelUtil.Root.AddChild(concreteFolder);
        concreteFolder.AddChild(subConcreteFolder);
        subConcreteFolder.AddChild(subConcreteFolder);

        Model.HandleBundleReparent(new BundleInfo[] { folderToBeMoved }, concreteFolder);

        Assert.AreEqual(concreteFolder.m_Name.bundleName, folderToBeMoved.parent.m_Name.bundleName);
    }
示例#7
0
    public void HandleBundleDelete_Deletes_AllChildrenOfConcreteFolder()
    {
        BundleFolderConcreteInfo concreteFolder = new BundleFolderConcreteInfo("concreteFolder", ABModelUtil.Root);

        ABModelUtil.Root.AddChild(concreteFolder);

        BundleDataInfo bundleDataInfo1 = new BundleDataInfo("bundle1", concreteFolder);
        BundleDataInfo bundleDataInfo2 = new BundleDataInfo("bundle2", concreteFolder);
        BundleDataInfo bundleDataInfo3 = new BundleDataInfo("bundle3", concreteFolder);

        concreteFolder.AddChild(bundleDataInfo1);
        concreteFolder.AddChild(bundleDataInfo2);
        concreteFolder.AddChild(bundleDataInfo3);

        Model.HandleBundleDelete(new BundleInfo[] { concreteFolder });

        FieldInfo numberOfChildrenFieldInfo = typeof(BundleFolderConcreteInfo).GetField("m_Children", BindingFlags.NonPublic | BindingFlags.Instance);
        Dictionary <string, BundleInfo> numberOfConcreteFolderChildren =
            numberOfChildrenFieldInfo.GetValue(concreteFolder) as Dictionary <string, BundleInfo>;

        Assert.AreEqual(0, numberOfConcreteFolderChildren.Keys.Count);
    }
示例#8
0
        public static void HandleBundleMerge_Merges_BundlesWithChildrenCorrectly()
        {
            // Account for existing bundles
            var numBundles = AssetDatabase.GetAllAssetBundleNames().Length;

            var folderName  = "folder";
            var bundle1Name = "bundle1";
            var bundle2Name = folderName + "/bundle2";

            var concrete        = new BundleFolderConcreteInfo(folderName, ABModelUtil.Root);
            var bundle1DataInfo = new BundleDataInfo(bundle1Name, ABModelUtil.Root);
            var bundle2DataInfo = new BundleDataInfo(bundle2Name, concrete);

            concrete.AddChild(bundle2DataInfo);

            var listOfPrefabs = new List <string>();

            listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle1Name, string.Empty));
            listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle2Name, string.Empty));
            listOfPrefabs.Add(TestUtil.CreatePrefabWithBundleAndVariantName(bundle2Name, string.Empty));

            TestUtil.ExecuteCodeAndCleanupAssets(() =>
            {
                Model.HandleBundleMerge(new BundleInfo[] { bundle1DataInfo }, bundle2DataInfo);

                var bundleNames = AssetDatabase.GetAllAssetBundleNames();
                Assert.AreEqual(numBundles + 1, bundleNames.Length, GetAllElementsAsString(bundleNames));
                Assert.IsTrue(bundleNames.Contains(bundle2Name));

                //Make sure every asset now has bundle1 as the bundle name
                foreach (var prefab in listOfPrefabs)
                {
                    Assert.AreEqual(bundle2Name, AssetImporter.GetAtPath(prefab).assetBundleName);
                }
            }, listOfPrefabs);
        }