public void EmitEventTemplate_fails_without_manifests()
        {
            using var headerFile      = TemporaryFile.Create();
            options.EventTemplateFile = headerFile.FilePath;

            bool success = compilation.EmitEventTemplate();

            Assert.False(success);
            Assert.Single(diags.Diagnostics);
            Assert.Contains("no manifests", diags.Diagnostics[0].FormattedMessage);
        }
        public void EmitMessageTables()
        {
            using var msgFile        = TemporaryFile.Create(".de-DE.tmp");
            options.MessageTableFile = msgFile.FilePath.Replace(".de-DE", "");

            var manifest = new EventManifest();

            manifest.AddResourceSet(new LocalizedResourceSet(CultureInfo.GetCultureInfo("de-DE")));
            compilation.AddManifests(manifest);

            bool success = compilation.EmitMessageTables();

            Assert.True(success);
            Assert.Empty(diags.Diagnostics);
            Assert.NotEqual(0, new FileInfo(msgFile.FilePath).Length);
        }
        public void EmitCode()
        {
            using var headerFile = TemporaryFile.Create();
            options.CodeGenOptions.CodeHeaderFile = headerFile.FilePath;

            compilation.AddCodeGenManifests(new EventManifest {
                Providers =
                {
                    new Provider("MyProvider", new Guid("{7ec0bfa4-4099-4d8a-ac1b-7a39bcfdbfcb}"), "MyProv")
                }
            });

            bool success = compilation.EmitCode();

            Assert.True(success);
            Assert.Empty(diags.Diagnostics);
            Assert.Equal("{7ec0bfa4-4099-4d8a-ac1b-7a39bcfdbfcb}", File.ReadAllText(headerFile.FilePath));
        }
        public void EmitEventTemplate()
        {
            using var wevtFile        = TemporaryFile.Create();
            options.EventTemplateFile = wevtFile.FilePath;

            compilation.AddResourceGenManifests(new EventManifest {
                Providers =
                {
                    new Provider("MyProvider", new Guid("{7ec0bfa4-4099-4d8a-ac1b-7a39bcfdbfcb}"), "MyProv")
                }
            });

            bool success = compilation.EmitEventTemplate();

            Assert.True(success);
            Assert.Empty(diags.Diagnostics);
            Assert.NotEqual(0, new FileInfo(wevtFile.FilePath).Length);
        }