Exemplo n.º 1
0
        public void ReadingNotUsablePropertyGivesAnError()
        {
            var er = new MockErrorReporter(false);

            Compile(new[] { "class Class { int UnusableProperty { get; set; } public void M() { int i = UnusableProperty; } }" }, metadataImporter: new MockMetadataImporter {
                GetPropertySemantics = p => PropertyScriptSemantics.NotUsableFromScript()
            }, errorReporter: er);
            Assert.That(er.AllMessagesText.Any(m => m.StartsWith("Error:") && m.Contains("Class.UnusableProperty")));
        }
Exemplo n.º 2
0
        public void UsingPropertyThatIsNotUsableFromScriptGivesAnError()
        {
            var er = new MockErrorReporter(false);

            Compile(new[] { "class Class { int UnusableProperty { get; set; } public void M() { UnusableProperty += 0; } }" }, metadataImporter: new MockMetadataImporter {
                GetPropertySemantics = p => PropertyScriptSemantics.NotUsableFromScript()
            }, errorReporter: er);
            Assert.That(er.AllMessages.Any(msg => msg.Severity == MessageSeverity.Error && msg.FormattedMessage.Contains("Class.UnusableProperty")));
        }
        public void IndexerThatIsNotUsableFromScriptIsNotImported()
        {
            var metadataImporter = new MockMetadataImporter {
                GetPropertySemantics = p => PropertyScriptSemantics.NotUsableFromScript()
            };

            Compile(new[] { "class C { public int this[int i] { get {} set {} } }" }, metadataImporter: metadataImporter);
            FindClass("C").InstanceMethods.Should().BeEmpty();
            FindClass("C").StaticMethods.Should().BeEmpty();
        }