public void CreateMixinFromFieldDefinition_Error() { WithSourceFiles(Files.Person); var personClass = CreateClass(nameof(Person)); var mixinField = personClass.SourceCode.FindMixinReference("_name"); var mixinFactory = new MixinReferenceFactory(Semantic); var mixin = mixinFactory.Create(mixinField); // Assert: type could not be resolved and null should be returned instead Assert.IsNull(mixin); }
public void CreateMixinFromBaseList_Success() { WithSourceFiles(Files.NotCompilable, Files.Mixin); var personClass = CreateClass("SimpleChildClassWithInterface"); var baseClass = (SimpleBaseTypeSyntax)personClass.SourceCode.BaseList.Types[0]; var mixinFactory = new MixinReferenceFactory(Semantic); var mixin = mixinFactory.Create(baseClass); Assert.IsNotNull(mixin); }
public void CreateMixinFromFieldDefinition_Success() { WithSourceFiles(Files.Person, Files.Name); var personClass = CreateClass(nameof(Person)); var mixinField = personClass.SourceCode.FindMixinReference("_name"); var mixinFactory = new MixinReferenceFactory(Semantic); var mixin = mixinFactory.Create(mixinField); Assert.AreEqual("_name", mixin.Name); Assert.AreEqual(3, mixin.Class.Properties.Count()); }
public void ClassWithNativeFields_CanExecuteMixinCommand_CannotExecute() { WithSourceFiles(Files.Person); var person = CreateClass(nameof(PersonWithNativeTypes)); var fieldDeclarations = person.SourceCode.DescendantNodes().OfType<FieldDeclarationSyntax>(); var mixinFactory = new MixinReferenceFactory(Semantic); foreach (var fieldDeclaration in fieldDeclarations) { var mixin = mixinFactory.Create(fieldDeclaration); var mixinCommand = new IncludeMixinCommand(mixin); Assert.IsFalse(mixinCommand.CanExecute(person)); } }