コード例 #1
0
        public void LocateFields_LocatesOnlyUnitializedFields()
        {
            var classSource =
                @"public class TestClass {
  private string s;
  private object o = new object();
  
  public TestClass() {
  }
}";

            var(semanticModel, syntax) = CompiledSourceFileProvider.CompileClass(classSource);
            var fieldLocator = new FieldLocator(syntax, semanticModel);

            var fields = fieldLocator.LocateFields();

            Assert.That(fields, Has.One.Items);
            var field = fields.Single();

            Assert.That(field.Declaration.Type.ToString(), Is.EqualTo("string"));
            Assert.That(field.Declaration.Variables, Has.One.Items);
            Assert.That(field.Declaration.Variables, Has.One.Items);
            var variable = field.Declaration.Variables.Single();

            Assert.That(variable.Identifier.ToString(), Is.EqualTo("s"));
        }
コード例 #2
0
        public void LocateFields_LocatesNoFields()
        {
            var classSource =
                @"public class TestClass {
  public TestClass() {
  }
}";

            var(semanticModel, syntax) = CompiledSourceFileProvider.CompileClass(classSource);
            var fieldLocator = new FieldLocator(syntax, semanticModel);

            var fields = fieldLocator.LocateFields();

            Assert.That(fields, Has.Exactly(0).Items);
        }
コード例 #3
0
        public void LocateFields_LocatesMultipleFields()
        {
            var classSource =
                @"public class TestClass {
  private string s;
  private object o;
  public TestClass() {
    s = """";
  }
}";

            var(semanticModel, syntax) = CompiledSourceFileProvider.CompileClass(classSource);
            var fieldLocator = new FieldLocator(syntax, semanticModel);

            var fields = fieldLocator.LocateFields();

            Assert.That(fields, Has.Exactly(2).Items);
        }
コード例 #4
0
        public void LocateFields_IgnoresValueTypes()
        {
            const string classSource = @"public class Test 
{
  private int i;
  private decimal d;
  private System.DayOfWeek day;
  private string s;

  public Test() {}
}";

            var(semantic, syntax) = CompiledSourceFileProvider.CompileClass(classSource);
            var fieldLocator = new FieldLocator(syntax, semantic);

            var fields = fieldLocator.LocateFields();

            Assert.That(fields, Has.One.Items);
            var field = fields.Single();

            Assert.That(field.Declaration.Type.ToString(), Is.EqualTo("string"));
        }