public void Apply_Create_CanCreate() { // Set up services. var addressablesEditorService = new FakeAddressablesEditorAdapter(); var assetDatabaseService = new FakeAssetDatabaseAdapter(); var service = new EntryOperationInfoApplyDomainService(addressablesEditorService, assetDatabaseService); // Set up test assets. const string address = "dummyAddress"; const string createdAssetPath = "Assets/Prefabs/prefab_test.prefab"; const string groupName = "TestPrefabs"; var labels = new[] { "DummyLabel1", "DummyLabel2" }; var groupTemplate = ScriptableObject.CreateInstance <AddressableAssetGroupTemplate>(); var groupTemplateGuid = assetDatabaseService.CreateTestAsset("Assets/TestGroupTemplate.asset", groupTemplate); var assetGuid = assetDatabaseService.CreateTestAsset(createdAssetPath, new GameObject()); // Test. var createOrMoveOperationInfo = new EntryCreateOrMoveOperationInfo(createdAssetPath, address, groupName, groupTemplateGuid, labels); var operationInfo = new EntryOperationInfo(createOrMoveOperationInfo, null); service.Apply(operationInfo); var group = addressablesEditorService.Groups.Values.First(); var entry = group.Entries.First(); Assert.That(group.Name, Is.EqualTo(groupName)); Assert.That(entry.Guid, Is.EqualTo(assetGuid)); Assert.That(entry.Address, Is.EqualTo(address)); Assert.That(entry.Labels.Length, Is.EqualTo(2)); Assert.That(entry.Labels, Contains.Item(labels[0])); Assert.That(entry.Labels, Contains.Item(labels[1])); }
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); }
public AssetProcessService(ISettingsRepository settingsRepository, IEntryRulesRepository entryRulesRepository, IAssetDatabaseAdapter assetDatabaseAdapter, IAddressablesEditorAdapter addressablesEditorAdapter) { // Create AddressableAssetSettings asset if it does not exists. if (AddressableAssetSettingsDefaultObject.Settings == null) { AddressableAssetSettingsDefaultObject.Settings = AddressableAssetSettings.Create( AddressableAssetSettingsDefaultObject.kDefaultConfigFolder, AddressableAssetSettingsDefaultObject.kDefaultConfigAssetName, true, true); } var addressableSettings = AddressableAssetSettingsDefaultObject.Settings; var addressablePathGenerateService = new AddressablePathGenerateDomainService(); var addressGenerateService = new AddressGenerateDomainService(addressablePathGenerateService); var groupNameService = new GroupNameGenerateDomainService(assetDatabaseAdapter); var entryOperationInfoBuildService = new EntryOperationInfoBuildDomainService(addressablePathGenerateService, addressGenerateService, groupNameService, assetDatabaseAdapter); var entryOperationInfoApplyService = new EntryOperationInfoApplyDomainService(addressablesEditorAdapter, assetDatabaseAdapter); _domainService = new AssetProcessDomainService(settingsRepository, entryRulesRepository, addressableSettings, assetDatabaseAdapter, entryOperationInfoBuildService, entryOperationInfoApplyService, addressablePathGenerateService); }