public void Apply_Remove_CanRemove()
        {
            // Set up services.
            var addressablesEditorService = new FakeAddressablesEditorAdapter();
            var assetDatabaseService      = new FakeAssetDatabaseAdapter();
            var service = new EntryOperationInfoApplyDomainService(addressablesEditorService, assetDatabaseService);

            // Set up test assets.
            const string groupName       = "BeforeGroup";
            var          beforeGroupInfo = addressablesEditorService.CreateGroup(groupName, false, false, false,
                                                                                 null, null);
            const string createdAssetPath = "Assets/Prefabs/prefab_test.prefab";
            var          groupTemplate    = ScriptableObject.CreateInstance <AddressableAssetGroupTemplate>();

            assetDatabaseService.CreateTestAsset("Assets/TestGroupTemplate.asset", groupTemplate);
            var assetGuid = assetDatabaseService.CreateTestAsset(createdAssetPath, new GameObject());

            addressablesEditorService.CreateOrMoveEntry(assetGuid, beforeGroupInfo.Guid);
            var beforeGroup = addressablesEditorService.Groups.Values.First(x => x.Name.Equals(groupName));

            Assert.That(beforeGroup.Entries.Count, Is.EqualTo(1));

            // Test.
            var removeOperationInfo = new EntryRemoveOperationInfo(createdAssetPath);
            var operationInfo       = new EntryOperationInfo(null, removeOperationInfo);

            service.Apply(operationInfo);
            Assert.That(beforeGroup.Entries.Count, Is.Zero);
            Assert.That(addressablesEditorService.Groups.Count, Is.Zero);
        }
Example #2
0
        private bool ApplyRemoveInfo(EntryRemoveOperationInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException(nameof(info));
            }

            Assert.IsFalse(string.IsNullOrEmpty(info.AssetPath));

            RemoveEntry(info.AssetPath, true);
            return(true);
        }