public void BuildEntryCreateOrMoveInfoByRules_ExistsMatchedRule_BuildInfoCorrectly()
        {
            // Set up.
            var          dummyFolderPath    = $"Assets/{Paths.GetAddressablesFolderName()}";
            var          dummyAssetPath     = $"{dummyFolderPath}/Prefabs/prefab_dummy_0001.prefab";
            const string dummyAssetFileName = "prefab_dummy_0001.prefab";
            var          rule = new EntryRule();

            rule.SetAddressablePathRule(@"Prefabs/prefab_dummy_(?<id>[0-9]{4})\.prefab");
            rule.SetAddressingMode(AddressingMode.AssetName);
            rule.SetGroupNameRule("Group_${id}");
            var rules = new EntryRuleSet();

            rules.Add(rule);
            var assetDatabaseAdapter  = new FakeAssetDatabaseAdapter();
            var addressableFolderGuid = assetDatabaseAdapter.CreateTestAsset(dummyFolderPath, new Object());
            var service = CreateBuildService(assetDatabaseAdapter);

            // Test.
            var entryOperationInfo = service.BuildEntryCreateOrMoveInfoByRules(dummyAssetPath, rules,
                                                                               addressableFolderGuid);

            Assert.That(entryOperationInfo.AssetPath, Is.EqualTo(dummyAssetPath));
            Assert.That(entryOperationInfo.Address, Is.EqualTo(dummyAssetFileName));
        }
        public void BuildEntryCreateOrMoveInfo_NoRulesMatched_UseDefault()
        {
            // Set up.
            var          dummyFolderPath       = $"Assets/{Paths.GetAddressablesFolderName()}";
            var          dummyAssetPath        = $"{dummyFolderPath}/Prefabs/prefab_dummy_0001.prefab";
            const string address               = "prefab_dummy_0001.prefab";
            var          assetDatabaseAdapter  = new FakeAssetDatabaseAdapter();
            var          addressableFolderGuid = assetDatabaseAdapter.CreateTestAsset(dummyFolderPath, new Object());
            var          service               = CreateBuildService(assetDatabaseAdapter);
            var          addressingMode        = AddressingMode.AssetName;
            var          packingMode           = PackingMode.PackTogether;
            var          rule = new EntryRule();

            rule.SetAddressablePathRule(@"__Prefabs/prefab_dummy_(?<id>[0-9]{4})\.prefab");
            rule.SetAddressingMode(AddressingMode.AssetName);
            rule.SetGroupNameRule("Group_${id}");
            var rules = new EntryRuleSet();

            rules.Add(rule);

            // Test.
            var entryOperationInfo = service.BuildEntryCreateOrMoveInfo(dummyAssetPath, addressingMode, packingMode,
                                                                        addressableFolderGuid, rules);

            Assert.That(entryOperationInfo.AssetPath, Is.EqualTo(dummyAssetPath));
            Assert.That(entryOperationInfo.Address, Is.EqualTo(address));
        }