public void EncapsulatePublicField_FieldHasReferences() { //Input const string inputCode = @"Public fizz As Integer Sub Foo() fizz = 0 Bar fizz End Sub Sub Bar(ByVal name As Integer) End Sub"; var selection = new Selection(1, 1); //Expectation const string expectedCode = @"Private fizz As Integer Public Property Get Name() As Integer Name = fizz End Property Public Property Let Name(ByVal value As Integer) fizz = value End Property Sub Foo() Name = 0 Bar Name End Sub Sub Bar(ByVal name As Integer) End Sub"; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, //CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; var refactoring = TestRefactoring(vbe.Object, rewritingManager, state, model); refactoring.Refactor(qualifiedSelection); var targetComponent = state.ProjectsProvider.Component(model.TargetDeclaration.QualifiedModuleName); var actualCode = targetComponent.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public EncapsulateFieldModel Create(Declaration target) { if (!(target is VariableDeclaration targetField)) { throw new ArgumentException(); } var fieldEncapsulationModels = new List <FieldEncapsulationModel>() { new FieldEncapsulationModel(targetField) }; var contextCollections = _candidateSetsFactory.Create(_declarationFinderProvider, _candidatesFactory, target.QualifiedModuleName); var useBackingFieldModel = _useBackingFieldModelFactory.Create(contextCollections, fieldEncapsulationModels); var useBackingUDTMemberModel = _useBackingUDTMemberModelFactory.Create(contextCollections, fieldEncapsulationModels); var initialStrategy = useBackingUDTMemberModel.ObjectStateUDTField.IsExistingDeclaration ? EncapsulateFieldStrategy.ConvertFieldsToUDTMembers : EncapsulateFieldStrategy.UseBackingFields; var conflictFinder = _encapsulateFieldConflictFinderFactory.Create(_declarationFinderProvider, contextCollections.EncapsulateFieldUseBackingFieldCandidates, contextCollections.ObjectStateFieldCandidates); var model = new EncapsulateFieldModel(useBackingFieldModel, useBackingUDTMemberModel, conflictFinder) { EncapsulateFieldStrategy = initialStrategy, }; return(model); }
public void EncapsulatePublicField_FieldHasReferences() { //Input const string inputCode = @"Public fizz As Integer Sub Foo() fizz = 0 Bar fizz End Sub Sub Bar(ByVal name As Integer) End Sub"; var selection = new Selection(1, 1, 1, 1); //Expectation const string expectedCode = @"Private fizz As Integer Public Property Get Name() As Integer Name = fizz End Property Public Property Let Name(ByVal value As Integer) fizz = value End Property Sub Foo() Name = 0 Bar Name End Sub Sub Bar(ByVal name As Integer) End Sub"; IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); var refactoring = new EncapsulateFieldRefactoring(vbe.Object, CreateIndenter(vbe.Object), factory.Object); refactoring.Refactor(qualifiedSelection); Assert.AreEqual(expectedCode, component.CodeModule.Content()); }
public void EncapsulatePublicField_FieldDeclarationHasMultipleFields_MoveFirst() { //Input const string inputCode = @"Public fizz, _ buzz As Boolean, _ bazz As Date"; var selection = new Selection(1, 12, 1, 12); //Expectation const string expectedCode = @"Public buzz As Boolean, bazz As Date Private fizz As Variant Public Property Get Name() As Variant If IsObject(fizz) Then Set Name = fizz Else Name = fizz End If End Property Public Property Let Name(ByVal value As Variant) fizz = value End Property Public Property Set Name(ByVal value As Variant) Set fizz = value End Property "; // note: VBE removes excess spaces IVBComponent component; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out component, selection); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = true, CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); var refactoring = new EncapsulateFieldRefactoring(vbe.Object, CreateIndenter(vbe.Object), factory.Object); refactoring.Refactor(qualifiedSelection); var actual = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actual); }
public void EncapsulatePublicField_FieldDeclarationHasMultipleFields_MoveFirst() { //Input const string inputCode = @"Public fizz, _ buzz As Boolean, _ bazz As Date"; var selection = new Selection(1, 12); //Expectation const string expectedCode = @"Public buzz As Boolean, _ bazz As Date Private fizz As Variant Public Property Get Name() As Variant If IsObject(fizz) Then Set Name = fizz Else Name = fizz End If End Property Public Property Let Name(ByVal value As Variant) fizz = value End Property Public Property Set Name(ByVal value As Variant) Set fizz = value End Property "; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = true, //CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; var refactoring = TestRefactoring(vbe.Object, rewritingManager, state, model); refactoring.Refactor(qualifiedSelection); var targetComponent = state.ProjectsProvider.Component(model.TargetDeclaration.QualifiedModuleName); var actualCode = targetComponent.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
private static Mock <IRefactoringPresenterFactory> SetupFactory(EncapsulateFieldModel model) { var presenter = new Mock <IEncapsulateFieldPresenter>(); var factory = new Mock <IRefactoringPresenterFactory>(); factory.Setup(f => f.Create <IEncapsulateFieldPresenter, EncapsulateFieldModel>(It.IsAny <EncapsulateFieldModel>())) .Callback(() => presenter.Setup(p => p.Show()).Returns(model)) .Returns(presenter.Object); return(factory); }
public EncapsulateFieldPresenter Create() { var selection = _vbe.GetActiveSelection(); if (!selection.HasValue) { return(null); } var model = new EncapsulateFieldModel(_state, selection.Value); return(new EncapsulateFieldPresenter(_view, model)); }
public void Refactoring_Puts_Code_In_Correct_Place() { //Input const string inputCode = @"Option Explicit Public Foo As String"; //Output const string expectedCode = @"Option Explicit Private Foo As String Public Property Get bar() As String bar = Foo End Property Public Property Let bar(ByVal value As String) Foo = value End Property "; var selection = new Selection(3, 8, 3, 11); var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, ParameterName = "value", PropertyName = "bar" }; //SetupFactory var factory = SetupFactory(model); var refactoring = TestRefactoring(vbe.Object, rewritingManager, state, model); refactoring.Refactor(qualifiedSelection); var targetComponent = state.ProjectsProvider.Component(model.TargetDeclaration.QualifiedModuleName); var actualCode = targetComponent.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public void EncapsulatePublicField_OptionExplicit_NotMoved() { //Input const string inputCode = @"Option Explicit Public foo As String"; var selection = new Selection(3, 9); //Expectation const string expectedCode = @"Option Explicit Private foo As String Public Property Get Name() As String Name = foo End Property Public Property Let Name(ByVal value As String) foo = value End Property "; var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component, selection); var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object); using (state) { var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, //CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); var refactoring = TestRefactoring(vbe.Object, rewritingManager, state, model); refactoring.Refactor(state.AllUserDeclarations.FindVariable(qualifiedSelection)); var actualCode = component.CodeModule.Content(); Assert.AreEqual(expectedCode, actualCode); } }
public EncapsulateFieldPresenter(IRefactoringDialog <EncapsulateFieldViewModel> view, EncapsulateFieldModel model) { _view = view; _model = model; }
public void GivenReferencedPublicField_UpdatesReferenceToNewProperty() { //Input const string codeClass1 = @"Public fizz As Integer Sub Foo() fizz = 1 End Sub"; const string codeClass2 = @"Sub Foo() Dim c As Class1 c.fizz = 0 Bar c.fizz End Sub Sub Bar(ByVal v As Integer) End Sub"; var selection = new Selection(1, 1, 1, 1); //Expectation const string expectedCode1 = @"Private fizz As Integer Public Property Get Name() As Integer Name = fizz End Property Public Property Let Name(ByVal value As Integer) fizz = value End Property Sub Foo() Name = 1 End Sub"; const string expectedCode2 = @"Sub Foo() Dim c As Class1 c.Name = 0 Bar c.Name End Sub Sub Bar(ByVal v As Integer) End Sub"; var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected) .AddComponent("Class1", ComponentType.ClassModule, codeClass1) .AddComponent("Class2", ComponentType.ClassModule, codeClass2) .Build(); var vbe = builder.AddProject(project).Build(); var component = project.Object.VBComponents[0]; vbe.Setup(v => v.ActiveCodePane).Returns(component.CodeModule.CodePane); var state = MockParser.CreateAndParse(vbe.Object); var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module1 = project.Object.VBComponents[0].CodeModule; var module2 = project.Object.VBComponents[1].CodeModule; var model = new EncapsulateFieldModel(state, qualifiedSelection) { ImplementLetSetterType = true, ImplementSetSetterType = false, CanImplementLet = true, ParameterName = "value", PropertyName = "Name" }; //SetupFactory var factory = SetupFactory(model); var refactoring = new EncapsulateFieldRefactoring(vbe.Object, CreateIndenter(vbe.Object), factory.Object); refactoring.Refactor(qualifiedSelection); var actualCode1 = module1.Content(); var actualCode2 = module2.Content(); Assert.AreEqual(expectedCode1, actualCode1); Assert.AreEqual(expectedCode2, actualCode2); }
//NOTE: The tests below are commented out pending some sort of refactoring that enables them //to actually *test* something. Currently, all of the behavior the tests are looking for is //being mocked. /* * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetChanged() * { * //Input * const string inputCode = * @"Private fizz As Variant"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementLetSetterType, true); * view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * * var presenter = factory.Create(); * * Assert.AreEqual(true, presenter.Show().ImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetChanged() * { * //Input * const string inputCode = * @"Private fizz As Variant"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementSetSetterType, true); * view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * * var presenter = factory.Create(); * * Assert.AreEqual(true, presenter.Show().ImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetAllowedForPrimitiveTypes_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Boolean"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementLetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.CanImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetNotAllowedForPrimitiveTypes_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Boolean"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementSetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(false, view.Object.CanImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetAllowedForNonVariantNonPrimitiveTypes_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Icon"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementSetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.CanImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetNotAllowedForNonVariantNonPrimitiveType_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Icon"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementLetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(false, view.Object.CanImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetAllowedForVariant_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Variant"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementLetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.CanImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetAllowedForVariant_NoReferences() * { * //Input * const string inputCode = * @"Private fizz As Variant"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.CanImplementSetSetterType, true); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.CanImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetRequiredForPrimitiveTypes_References() * { * //Input * const string inputCode = * @"Private fizz As Boolean * Sub foo() * fizz = True * End Sub"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementLetSetterType, false); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.MustImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetRequiredForNonVariantNonPrimitiveTypes_References() * { * //Input * const string inputCode = * @"Private fizz As Class1 * Sub foo() * Set fizz = New Class1 * End Sub"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementSetSetterType, false); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.MustImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementLetRequiredForNonSetVariant_References() * { * //Input * const string inputCode = * @"Private fizz As Variant * Sub Foo() * fizz = True * End Sub"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementLetSetterType, false); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.MustImplementLetSetterType); * } * * [TestMethod] * public void Presenter_Accept_ReturnsModelWithImplementSetRequiredForSetVariant_References() * { * //Input * const string inputCode = * @"Private fizz As Variant * Sub foo() * Set fizz = New Class1 * End Sub"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.SetupProperty(v => v.MustImplementSetSetterType, false); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * factory.Create().Show(); * * Assert.AreEqual(true, view.Object.MustImplementSetSetterType); * } * * * [TestMethod] * public void Presenter_Accept_DefaultCreateGetOnly_PrimitiveType_NoReference() * { * //Input * const string inputCode = * @"Private fizz As Date"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * var model = factory.Create().Show(); * * Assert.AreEqual(false, model.ImplementLetSetterType); * Assert.AreEqual(false, model.ImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_DefaultCreateGetOnly_NonPrimitiveTypeNonVariant_NoReference() * { * //Input * const string inputCode = * @"Private fizz As Icon"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * var model = factory.Create().Show(); * * Assert.AreEqual(false, model.ImplementLetSetterType); * Assert.AreEqual(false, model.ImplementSetSetterType); * } * * [TestMethod] * public void Presenter_Accept_DefaultCreateGetOnly_Variant_NoReference() * { * //Input * const string inputCode = * @"Private fizz As Variant"; * var selection = new Selection(1, 15, 1, 15); * * var builder = new MockVbeBuilder(); * IVBComponent component; * var vbe = builder.BuildFromSingleStandardModule(inputCode, out component, selection); * var parser = MockParser.Create(vbe.Object, new RubberduckParserState(vbe.Object)); * * parser.Parse(new CancellationTokenSource()); * if (state.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); } * * var view = new Mock<IEncapsulateFieldDialog>(); * view.Setup(v => v.ShowDialog()).Returns(DialogResult.OK); * * var factory = new EncapsulateFieldPresenterFactory(vbe.Object, state, view.Object); * var model = factory.Create().Show(); * * Assert.AreEqual(false, model.ImplementLetSetterType); * Assert.AreEqual(false, model.ImplementSetSetterType); * } */ #region setup private static Mock <IRefactoringPresenterFactory <IEncapsulateFieldPresenter> > SetupFactory(EncapsulateFieldModel model) { var presenter = new Mock <IEncapsulateFieldPresenter>(); presenter.Setup(p => p.Show()).Returns(model); var factory = new Mock <IRefactoringPresenterFactory <IEncapsulateFieldPresenter> >(); factory.Setup(f => f.Create()).Returns(presenter.Object); return(factory); }
private static IRefactoring TestRefactoring(IVBE vbe, IRewritingManager rewritingManager, RubberduckParserState state, EncapsulateFieldModel model) { var selectionService = MockedSelectionService(); var indenter = CreateIndenter(vbe); var factory = SetupFactory(model); return(new EncapsulateFieldRefactoring(state, indenter, factory.Object, rewritingManager, selectionService)); }