Skip to content

Commit

Permalink
Fix: Fixed a bug with UsePtrData on CacheService not working
Browse files Browse the repository at this point in the history
- Removed file mappings from being cached on initialisation
  • Loading branch information
Niphyr committed Feb 12, 2025
1 parent 46abd17 commit ae7ec56
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 23 deletions.
59 changes: 58 additions & 1 deletion SimcProfileParser.Tests/DataSync/CacheServiceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public async Task CS_Downloads_File()
ParsedFileType = SimcParsedFileType.CombatRatingMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "ScaleData.raw", "https://raw.githubusercontent.com/simulationcraft/simc/thewarwithin/engine/dbc/generated/sc_scale_data.inc" }
{ "ScaleData.raw", "sc_scale_data" }
}
};
var filePath = Path.Combine(cache.BaseFileDirectory, "ScaleData.raw");
Expand All @@ -76,6 +76,63 @@ public async Task CS_Downloads_File()
ClassicAssert.NotNull(data);
}

[Test]
/// Integration test of sorts. Checking the file download works.
public async Task CS_Downloads_Ptr_File()
{
// Arrange
CacheService cache = new CacheService(null, _loggerFactory.CreateLogger<CacheService>());
cache.SetUsePtrData(true);

var configuration = new CacheFileConfiguration()
{
LocalParsedFile = "CombatRatingMultipliers.json",
ParsedFileType = SimcParsedFileType.CombatRatingMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "ScaleData.raw", "sc_scale_data" }
}
};
var filePath = Path.Combine(cache.BaseFileDirectory, "ScaleData.raw");

// Act
var data = await cache.GetRawFileContentsAsync(configuration, "ScaleData.raw");

// Assert
DirectoryAssert.Exists(cache.BaseFileDirectory);
FileAssert.Exists(filePath);
ClassicAssert.NotNull(data);
}

[Test]
/// Integration test of sorts. Checking the file download fails properly.
public void CS_Download_Fails_Bad_Filename()
{
// Arrange
CacheService cache = new CacheService(null, _loggerFactory.CreateLogger<CacheService>());
cache.SetUsePtrData(true);

var configuration = new CacheFileConfiguration()
{
LocalParsedFile = "FakeFileTest.json",
ParsedFileType = SimcParsedFileType.CombatRatingMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "FakeFileTest.raw", "fake_filename" }
}
};
var filePath = Path.Combine(cache.BaseFileDirectory, "FakeFileTest.raw");

// Act
async Task testDelegate()
{
var data = await cache.GetRawFileContentsAsync(configuration, "FakeFileTest.raw");
}

// Assert
var ex = Assert.ThrowsAsync<FileNotFoundException>(testDelegate);
}

[Test]
public async Task CS_Cache_Updates()
{
Expand Down
38 changes: 19 additions & 19 deletions SimcProfileParser/DataSync/CacheService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.ItemDataNew,
RawFiles = new Dictionary<string, string>()
{
{ "ItemData.raw", _getUrl("item_data") },
{ "ItemEffectData.raw", _getUrl("item_effect") }
{ "ItemData.raw", "item_data" },
{ "ItemEffectData.raw", "item_effect" }
}
});

Expand All @@ -62,8 +62,8 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.ItemDataOld,
RawFiles = new Dictionary<string, string>()
{
{ "ItemData.raw", _getUrl("item_data") },
{ "ItemEffectData.raw", _getUrl("item_effect") }
{ "ItemData.raw", "item_data" },
{ "ItemEffectData.raw", "item_effect" }
}
});

Expand All @@ -73,7 +73,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.CombatRatingMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "ScaleData.raw", _getUrl("sc_scale_data") }
{ "ScaleData.raw", "sc_scale_data" }
}
});

Expand All @@ -83,7 +83,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.StaminaMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "ScaleData.raw", _getUrl("sc_scale_data") }
{ "ScaleData.raw", "sc_scale_data" }
}
});

Expand All @@ -93,7 +93,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.RandomPropPoints,
RawFiles = new Dictionary<string, string>()
{
{ "RandomPropPoints.raw", _getUrl("rand_prop_points") }
{ "RandomPropPoints.raw", "rand_prop_points" }
}
});

Expand All @@ -103,7 +103,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.SpellData,
RawFiles = new Dictionary<string, string>()
{
{ "SpellData.raw", _getUrl("sc_spell_data") }
{ "SpellData.raw", "sc_spell_data" }
}
});

Expand All @@ -113,7 +113,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.ItemBonusData,
RawFiles = new Dictionary<string, string>()
{
{ "ItemBonusData.raw", _getUrl("item_bonus") }
{ "ItemBonusData.raw", "item_bonus" }
}
});

Expand All @@ -123,7 +123,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.GemData,
RawFiles = new Dictionary<string, string>()
{
{ "GemData.raw", _getUrl("gem_data") }
{ "GemData.raw", "gem_data" }
}
});

Expand All @@ -133,7 +133,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.ItemEnchantData,
RawFiles = new Dictionary<string, string>()
{
{ "ItemEnchantData.raw", _getUrl("spell_item_enchantment") }
{ "ItemEnchantData.raw", "spell_item_enchantment" }
}
});

Expand All @@ -143,7 +143,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.SpellScaleMultipliers,
RawFiles = new Dictionary<string, string>()
{
{ "ScaleData.raw", _getUrl("sc_scale_data") }
{ "ScaleData.raw", "sc_scale_data" }
}
});

Expand All @@ -153,7 +153,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.CurvePoints,
RawFiles = new Dictionary<string, string>()
{
{ "CurveData.raw", _getUrl("item_scaling") }
{ "CurveData.raw", "item_scaling" }
}
});

Expand All @@ -163,7 +163,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.RppmData,
RawFiles = new Dictionary<string, string>()
{
{ "RppmData.raw", _getUrl("real_ppm_data") }
{ "RppmData.raw", "real_ppm_data" }
}
});

Expand All @@ -173,7 +173,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.CovenantData,
RawFiles = new Dictionary<string, string>()
{
{ "CovenantData.raw", _getUrl("covenant_data") }
{ "CovenantData.raw", "covenant_data" }
}
});

Expand All @@ -183,7 +183,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.ItemEffectData,
RawFiles = new Dictionary<string, string>()
{
{ "ItemEffectData.raw", _getUrl("item_effect") }
{ "ItemEffectData.raw", "item_effect" }
}
});

Expand All @@ -193,7 +193,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.GameDataVersion,
RawFiles = new Dictionary<string, string>()
{
{ "GameDataVersion.raw", _getUrl("client_data_version") }
{ "GameDataVersion.raw", "client_data_version" }
}
});

Expand All @@ -203,7 +203,7 @@ public CacheService(IRawDataExtractionService rawDataExtractionService,
ParsedFileType = SimcParsedFileType.TraitData,
RawFiles = new Dictionary<string, string>()
{
{ "TraitData.raw", _getUrl("trait_data") }
{ "TraitData.raw", "trait_data" }
}
});
}
Expand Down Expand Up @@ -304,7 +304,7 @@ internal async Task<string> GetRawFileContentsAsync(CacheFileConfiguration confi

_logger?.LogTrace("Path does not exist: [{localPath}] - attempting to download file from [{destinationRawFile}].", localPath, destinationRawFile);

var downloaded = await DownloadFileIfChangedAsync(new Uri(destinationRawFile.Value),
var downloaded = await DownloadFileIfChangedAsync(new Uri(_getUrl(destinationRawFile.Value)),
new Uri(Path.Combine(BaseFileDirectory, destinationRawFile.Key)));

if (!downloaded)
Expand Down
6 changes: 3 additions & 3 deletions SimcProfileParser/SimcProfileParser.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<PropertyGroup>
<TargetFrameworks>net8.0</TargetFrameworks>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>2.0.2</Version>
<AssemblyVersion>2.0.2</AssemblyVersion>
<FileVersion>2.0.2</FileVersion>
<Version>2.0.3</Version>
<AssemblyVersion>2.0.3</AssemblyVersion>
<FileVersion>2.0.3</FileVersion>
<Authors>Mechanical Priest</Authors>
<Company>Mechanical Priest</Company>
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
Expand Down

0 comments on commit ae7ec56

Please sign in to comment.