You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
400 lines
13 KiB
400 lines
13 KiB
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) |
|
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) |
|
// |
|
//using System; |
|
//using System.Collections; |
|
//using System.ComponentModel; |
|
//using System.ComponentModel.Design; |
|
//using System.ComponentModel.Design.Serialization; |
|
//using System.Windows.Forms; |
|
// |
|
//using ICSharpCode.FormsDesigner; |
|
//using ICSharpCode.FormsDesigner.Services; |
|
//using ICSharpCode.Scripting.Tests.Utils; |
|
//using NUnit.Framework; |
|
// |
|
//namespace ICSharpCode.Scripting.Tests.Designer |
|
//{ |
|
// [TestFixture] |
|
// [RequiresSTA] |
|
// public class ScriptingDesignerLoaderTests |
|
// { |
|
// MockDesignerGenerator fakeGenerator; |
|
// TestableScriptingDesignerLoader loader; |
|
// MockDesignerLoaderHost fakeDesignerLoaderHost; |
|
// MockEventBindingService fakeEventBindingService; |
|
// FormsDesignerViewContent formsDesignerView; |
|
// FakeDesignerSerializationManager fakeSerializationManager; |
|
// |
|
// [SetUp] |
|
// public void Init() |
|
// { |
|
// CreateScriptingDesignerLoader(); |
|
// } |
|
// |
|
// void CreateScriptingDesignerLoader() |
|
// { |
|
// fakeGenerator = new MockDesignerGenerator(); |
|
// loader = new TestableScriptingDesignerLoader(fakeGenerator); |
|
// |
|
// formsDesignerView = new FormsDesignerViewContent(new MockViewContent(), new MockOpenedFile("Test.py")); |
|
// fakeGenerator.Attach(formsDesignerView); |
|
// } |
|
// |
|
// [TearDown] |
|
// public void TearDown() |
|
// { |
|
// loader.Dispose(); |
|
// } |
|
// |
|
// [Test] |
|
// public void ScriptingDesignerLoaderClass_NewInstance_IsBasicDesignerLoader() |
|
// { |
|
// BasicDesignerLoader basicLoader = loader as BasicDesignerLoader; |
|
// Assert.IsNotNull(basicLoader); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_ComponentSerializationServiceAddedToDesignerLoaderHost() |
|
// { |
|
// BeginLoad(); |
|
// CodeDomComponentSerializationService service = fakeDesignerLoaderHost.GetService(typeof(ComponentSerializationService)) as CodeDomComponentSerializationService; |
|
// Assert.IsNotNull(service); |
|
// } |
|
// |
|
// void BeginLoad() |
|
// { |
|
// CreateDesignerLoaderHostWithoutProjectResourceService(); |
|
// fakeDesignerLoaderHost.AddService(typeof(ProjectResourceService), new ProjectResourceService(new MockProjectContent())); |
|
// loader.BeginLoad(fakeDesignerLoaderHost); |
|
// } |
|
// |
|
// void CreateDesignerLoaderHostWithoutProjectResourceService() |
|
// { |
|
// fakeDesignerLoaderHost = new MockDesignerLoaderHost(); |
|
// fakeEventBindingService = new MockEventBindingService(); |
|
// fakeDesignerLoaderHost.AddService(typeof(IEventBindingService), fakeEventBindingService); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_NameCreationServiceAddedToDesignerLoaderHost() |
|
// { |
|
// BeginLoad(); |
|
// ScriptingNameCreationService service = fakeDesignerLoaderHost.GetService(typeof(INameCreationService)) as ScriptingNameCreationService; |
|
// Assert.IsNotNull(service); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_DesignerSerializationServiceAddedToDesignerLoaderHost() |
|
// { |
|
// BeginLoad(); |
|
// DesignerSerializationService service = fakeDesignerLoaderHost.GetService(typeof(IDesignerSerializationService)) as DesignerSerializationService; |
|
// Assert.IsNotNull(service); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_ProjectResourceServiceDesignerAddedToDesignerLoaderHostDoesNotSupportProjectResources() |
|
// { |
|
// BeginLoad(); |
|
// ProjectResourceService service = fakeDesignerLoaderHost.GetService(typeof(ProjectResourceService)) as ProjectResourceService; |
|
// Assert.IsFalse(service.DesignerSupportsProjectResources); |
|
// } |
|
// |
|
// [Test] |
|
// public void GetEventProperty_PassedFormLoadEventDescriptor_ReturnsPropertyDescriptorFromEventBindingService() |
|
// { |
|
// BeginLoad(); |
|
// IEventBindingService eventBindingService = (IEventBindingService)fakeEventBindingService; |
|
// EventDescriptor e = TypeDescriptor.GetEvents(typeof(Form)).Find("Load", true); |
|
// |
|
// PropertyDescriptor propertyDescriptor = loader.GetEventProperty(e); |
|
// PropertyDescriptor expectedPropertyDescriptor = eventBindingService.GetEventProperty(e); |
|
// |
|
// Assert.AreEqual(expectedPropertyDescriptor, propertyDescriptor); |
|
// } |
|
// |
|
// [Test] |
|
// public void ScriptingDesignerLoaderConstructor_PassedNullGenerator_ThrowsArgumentException() |
|
// { |
|
// ArgumentException ex = Assert.Throws<ArgumentException>(delegate { |
|
// loader = new TestableScriptingDesignerLoader(null); |
|
// }); |
|
// string paramName = ex.ParamName; |
|
// string expectedParamName = "generator"; |
|
// Assert.AreEqual(expectedParamName, paramName); |
|
// } |
|
// |
|
// [Test] |
|
// public void PerformFlush_PassedDesignerSerializationManager_DesignerLoaderHostPassedToMergeRootComponentChangesMethod() |
|
// { |
|
// BeginLoad(); |
|
// DesignerSerializationManager serializationManager = new DesignerSerializationManager(); |
|
// loader.CallPerformFlush(serializationManager); |
|
// |
|
// IDesignerHost host = fakeGenerator.MergeChangesHost; |
|
// Assert.AreEqual(fakeDesignerLoaderHost, host); |
|
// } |
|
// |
|
// [Test] |
|
// public void PerformFlush_PassedDesignerSerializationManager_SerializationManagerPassedToMergeRootComponentMethod() |
|
// { |
|
// BeginLoad(); |
|
// DesignerSerializationManager expectedSerializationManager = new DesignerSerializationManager(); |
|
// loader.CallPerformFlush(expectedSerializationManager); |
|
// |
|
// IDesignerSerializationManager serializationManager = fakeGenerator.MergeChangesSerializationManager; |
|
// Assert.AreEqual(expectedSerializationManager, serializationManager); |
|
// } |
|
// |
|
// [Test] |
|
// public void RootComponent_DesignerLoaderHostRootComponentIsForm_ReturnsDesignerLoaderHostRootComponent() |
|
// { |
|
// BeginLoad(); |
|
// using (Form form = new Form()) { |
|
// fakeDesignerLoaderHost.RootComponent = form; |
|
// IComponent rootComponent = loader.RootComponent; |
|
// Assert.AreEqual(form, rootComponent); |
|
// } |
|
// } |
|
// |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_CallsCreatesComponentWalkerPassingNonNullComponentCreator() |
|
// { |
|
// BeginLoad(); |
|
// IComponentCreator componentCreator = loader.ComponentCreatorPassedToCreateComponentWalker; |
|
// Assert.IsNotNull(componentCreator); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_PassedFakeDesignerLoaderHost_CallsComponentWalkerCreateComponentMethodPassingFormCode() |
|
// { |
|
// string expectedCode = |
|
// "MyForm(Form):\r\n" + |
|
// " pass"; |
|
// |
|
// formsDesignerView.DesignerCodeFileContent = expectedCode; |
|
// |
|
// BeginLoad(); |
|
// string code = loader.FakeComponentWalker.CodePassedToCreateComponent; |
|
// Assert.AreEqual(expectedCode, code); |
|
// } |
|
// |
|
// [Test] |
|
// public void BeginLoad_NoProjectResourceService_NullReferenceExceptionIsNotThrown() |
|
// { |
|
// CreateDesignerLoaderHostWithoutProjectResourceService(); |
|
// |
|
// Assert.DoesNotThrow(delegate { loader.BeginLoad(fakeDesignerLoaderHost); }); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateComponent_CreateTextBox_TextBoxTypePassedToDesignerLoaderHostCreateComponentMethod() |
|
// { |
|
// BeginLoad(); |
|
// loader.CreateComponent(typeof(TextBox), "MyTextBox"); |
|
// CreatedComponent createdComponent = fakeDesignerLoaderHost.CreatedComponents[0]; |
|
// CreatedComponent expectedCreatedComponent = new CreatedComponent("System.Windows.Forms.TextBox", "MyTextBox"); |
|
// |
|
// Assert.AreEqual(expectedCreatedComponent, createdComponent); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateComponent_CreateTextBox_TextBoxInstanceReturned() |
|
// { |
|
// BeginLoad(); |
|
// IComponent component = loader.CreateComponent(typeof(TextBox), "MyTextBox"); |
|
// bool result = component is TextBox; |
|
// |
|
// Assert.IsTrue(result); |
|
// } |
|
// |
|
// [Test] |
|
// public void Add_AddTextBox_AddsTextBoxToDesignerLoaderHostContainer() |
|
// { |
|
// BeginLoad(); |
|
// using (TextBox textBox = new TextBox()) { |
|
// loader.Add(textBox, "MyTextBox"); |
|
// IComponent component = fakeDesignerLoaderHost.Container.Components["MyTextBox"]; |
|
// Assert.AreEqual(textBox, component); |
|
// } |
|
// } |
|
// |
|
// [Test] |
|
// public void GetComponent_TextBoxAddedToLoader_ReturnsTextBox() |
|
// { |
|
// BeginLoad(); |
|
// using (TextBox textBox = new TextBox()) { |
|
// loader.Add(textBox, "MyTextBox"); |
|
// IComponent component = loader.GetComponent("MyTextBox"); |
|
// Assert.AreEqual(textBox, component); |
|
// } |
|
// } |
|
// |
|
// [Test] |
|
// public void GetComponent_NoComponentsAddedToLoader_ReturnsNull() |
|
// { |
|
// BeginLoad(); |
|
// IComponent component = loader.GetComponent("MyTextBox"); |
|
// Assert.IsNull(component); |
|
// } |
|
// |
|
// [Test] |
|
// public void GetType_PassedTypeName_ReturnsTypeFromDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// Type expectedType = typeof(string); |
|
// fakeSerializationManager.TypeToReturnFromGetType = expectedType; |
|
// Type type = loader.GetType("string"); |
|
// |
|
// Assert.AreEqual(expectedType, type); |
|
// } |
|
// |
|
// void CreateDesignerSerializationManager() |
|
// { |
|
// fakeSerializationManager = new FakeDesignerSerializationManager(); |
|
// } |
|
// |
|
// [Test] |
|
// public void GetType_PassedTypeName_TypeNamePassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// string expectedTypeName = "test"; |
|
// loader.GetType(expectedTypeName); |
|
// |
|
// string typeName = fakeSerializationManager.TypeNamePassedToGetType; |
|
// Assert.AreEqual(expectedTypeName, typeName); |
|
// } |
|
// |
|
// [Test] |
|
// public void GetInstance_PassedName_ReturnsInstanceFromDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// object expectedInstance = new object(); |
|
// fakeSerializationManager.InstanceToReturnFromGetInstance = expectedInstance; |
|
// object instance = loader.GetInstance("test"); |
|
// |
|
// Assert.AreEqual(expectedInstance, instance); |
|
// } |
|
// |
|
// [Test] |
|
// public void GetInstance_PassedName_InstanceNamePassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// string expectedName = "test"; |
|
// loader.GetInstance(expectedName); |
|
// |
|
// string name = fakeSerializationManager.NamePassedToGetInstance; |
|
// Assert.AreEqual(expectedName, name); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedType_ReturnsInstanceFromDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// object expectedInstance = new object(); |
|
// fakeSerializationManager.InstanceToReturnFromCreateInstance = expectedInstance; |
|
// object instance = LoaderCreateInstance(typeof(string)); |
|
// |
|
// Assert.AreEqual(expectedInstance, instance); |
|
// } |
|
// |
|
// object LoaderCreateInstance(Type type) |
|
// { |
|
// return LoaderCreateInstance(type, null, null, false); |
|
// } |
|
// |
|
// object LoaderCreateInstance(string name) |
|
// { |
|
// return LoaderCreateInstance(null, null, name, false); |
|
// } |
|
// |
|
// object LoaderCreateInstance(ICollection arguments) |
|
// { |
|
// return LoaderCreateInstance(null, arguments, null, false); |
|
// } |
|
// |
|
// object LoaderCreateInstance(bool addToContainer) |
|
// { |
|
// return LoaderCreateInstance(null, null, null, addToContainer); |
|
// } |
|
// |
|
// object LoaderCreateInstance(Type type, ICollection arguments, string name, bool addToContainer) |
|
// { |
|
// return loader.CreateInstance(type, arguments, name, addToContainer); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedType_TypePassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// Type expectedType = typeof(string); |
|
// LoaderCreateInstance(expectedType); |
|
// Type type = fakeSerializationManager.TypePassedToCreateInstance; |
|
// |
|
// Assert.AreEqual(expectedType, type); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedName_NamePassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// string expectedName = "test"; |
|
// LoaderCreateInstance(expectedName); |
|
// string name = fakeSerializationManager.NamePassedToCreateInstance; |
|
// |
|
// Assert.AreEqual(expectedName, name); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedTrueAddToContainer_AddToContainerPassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// LoaderCreateInstance(true); |
|
// bool addToContainer = fakeSerializationManager.AddToContainerPassedToCreateInstance; |
|
// |
|
// Assert.IsTrue(addToContainer); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedFalseAddToContainer_AddToContainerPassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// LoaderCreateInstance(false); |
|
// bool addToContainer = fakeSerializationManager.AddToContainerPassedToCreateInstance; |
|
// |
|
// Assert.IsFalse(addToContainer); |
|
// } |
|
// |
|
// [Test] |
|
// public void CreateInstance_PassedArguments_ArgumentsPassedToDesignerSerializationManager() |
|
// { |
|
// CreateDesignerSerializationManager(); |
|
// loader.CallPerformLoad(fakeSerializationManager); |
|
// |
|
// string[] expectedArguments = new string[] { "a", "b" }; |
|
// LoaderCreateInstance(expectedArguments); |
|
// ICollection arguments = fakeSerializationManager.ArgumentsPassedToCreateInstance; |
|
// |
|
// Assert.AreEqual(expectedArguments, arguments); |
|
// } |
|
// } |
|
//}
|
|
|