Example #1
0
        public void GetCompileResults_ReturnsString()
        {
            // Arrange

            var gl = Substitute.For<IOpenGL30>();
            gl.CreateShader(Arg.Any<uint>()).Returns(1u);

            gl.WhenForAnyArgs(g => g.GetShaderiv(0, (uint)ShaderParameters.InfoLogLength, Arg.Any<int[]>()))
                .Do(x => ((int[])x[2])[0] = 1 );

            var result = new string(' ', 1024);

            gl.WhenForAnyArgs(g => g.GetShaderInfoLog(Arg.Any<uint>(), Arg.Any<int>(), Arg.Any<int[]>(), ref result))
                .Do( x =>
                    {
                        ((int[])x[2])[0] = 1;
                        x[3] = "A";
                    });
            var shader = new VertexShader(gl, "Foo");

            // Act
            var results = shader.GetCompilationResults();

            // Assert
            Assert.AreEqual("A", results.Message);
        }