public void NoErrorsOrWarningsWhenEverythingIsFine()
        {
            var messages = GlVersionParsing.GetLogMessages(new OpenGlVersion("3.1", "Acme", "3Dfx Voodoo"), _report).ToList();

            Assert.IsFalse(messages.Any(s => s.Contains("Warning")));
            Assert.IsFalse(messages.Any(s => s.Contains("Error")));
        }
        public void WarnsWhenCantParseGlVersion()
        {
            var messages = GlVersionParsing.GetLogMessages(new OpenGlVersion("lol.meh", "Acme", "3Dfx Voodoo"), _report).ToList();

            Assert.Contains("Warning: Failed to detect OpenGL version. The required version is 2.1, your computer reports 'lol.meh'", messages);
            _report.Received(1).Warn("OpenGL parsing error: 'lol.meh'", ReportTo.Headquarters | ReportTo.Log);
        }
        public void ErrorsWhenOpenGlVersionIsNotSupported()
        {
            var messages = GlVersionParsing.GetLogMessages(new OpenGlVersion("1.1.0", "Acme", "3Dfx Voodoo"), _report).ToList();
            var expected = "Error: The required OpenGL version is 2.1, your computer reports '1.1.0'";

            _report.Received(1).Error(expected, ReportTo.Log);
            Assert.Contains(expected, messages);
        }
        public void ReportsVersionAndVendorAndRenderer()
        {
            var messages = GlVersionParsing.GetLogMessages(new OpenGlVersion("3.1", "Acme", "3Dfx Voodoo"), _report).ToList();

            Assert.AreEqual("OpenGL Version: 3.1\n", messages[0]);
            Assert.AreEqual("OpenGL Vendor: Acme\n", messages[1]);
            Assert.AreEqual("OpenGL Renderer: 3Dfx Voodoo\n", messages[2]);
        }