internal static void TestOutput(string directory, bool ignoreCsProj = false, bool ignoreConfig = false) { var resourceDirectory = Path.Combine(TestDirectory, "GoldenTestData", directory); var json = File.ReadAllText(Path.Combine(resourceDirectory, "discovery.json")); var features = new Features { ReleaseVersion = "1.49.0", CurrentSupportVersion = "1.49.0", Net40SupportVersion = "1.25.0", PclSupportVersion = "1.10.0" }; PackageEnumStorage enumStorage = PackageEnumStorage.FromJson("{}"); var files = CodeGenerator.Generate(json, features, enumStorage).ToList(); // Check output is present. Assert.NotEmpty(files); foreach (var file in files) { if ((ignoreCsProj && file.RelativePath.EndsWith(".csproj")) || (ignoreConfig && file.RelativePath.EndsWith(".config"))) { continue; } var expectedFilePath = Path.Combine(TestDirectory, "GoldenTestData", directory, file.RelativePath); TextComparer.CompareText(expectedFilePath, file); } // TODO: Validate enum storage }
public void KeysAreIndependent() { string key1 = Guid.NewGuid().ToString(); string key2 = Guid.NewGuid().ToString(); var storage = PackageEnumStorage.FromJson("{}"); Assert.Equal(0, storage.GetOrAddEnumValue(key1, "x")); Assert.Equal(1, storage.GetOrAddEnumValue(key1, "y")); // The "y" value from key 1 shouldn't affect key 2 Assert.Equal(0, storage.GetOrAddEnumValue(key2, "y")); Assert.Equal(1, storage.GetOrAddEnumValue(key2, "z")); // Back to key 1, where the "z" value from key 2 shouldn't // affect it Assert.Equal(2, storage.GetOrAddEnumValue(key1, "z")); }
public void SimulatedOrderingChange() { string key = Guid.NewGuid().ToString(); // First run: values [ "zero", "one", "two" ] var storage = PackageEnumStorage.FromJson("{}"); Assert.Equal(0, storage.GetOrAddEnumValue(key, "zero")); Assert.Equal(1, storage.GetOrAddEnumValue(key, "one")); Assert.Equal(2, storage.GetOrAddEnumValue(key, "two")); string json = storage.ToJson(); // Second run: values [ "two", "zero", "one", "three" ] storage = PackageEnumStorage.FromJson(json); Assert.Equal(2, storage.GetOrAddEnumValue(key, "two")); Assert.Equal(0, storage.GetOrAddEnumValue(key, "zero")); Assert.Equal(1, storage.GetOrAddEnumValue(key, "one")); Assert.Equal(3, storage.GetOrAddEnumValue(key, "three")); }