Exemplo n.º 1
0
        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"));
        }