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); }
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); }
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); }
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); }