1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Collections.Generic;
6
using System.ComponentModel;
7
using System.ComponentModel.Design;
8
using System.ComponentModel.Design.Serialization;
10
using System.Globalization;
11
using System.Windows.Forms;
13
using ICSharpCode.PythonBinding;
14
using ICSharpCode.Scripting.Tests.Utils;
15
using NUnit.Framework;
16
using PythonBinding.Tests.Utils;
18
namespace PythonBinding.Tests.Designer
21
public class GenerateFormResourceTestFixture
23
MockResourceWriter resourceWriter;
24
MockComponentCreator componentCreator;
25
string generatedPythonCode;
30
public void SetUpFixture()
32
resourceWriter = new MockResourceWriter();
33
componentCreator = new MockComponentCreator();
34
componentCreator.SetResourceWriter(resourceWriter);
36
using (DesignSurface designSurface = new DesignSurface(typeof(Form))) {
37
IDesignerHost host = (IDesignerHost)designSurface.GetService(typeof(IDesignerHost));
38
IEventBindingService eventBindingService = new MockEventBindingService(host);
39
host.AddService(typeof(IResourceService), componentCreator);
41
Form form = (Form)host.RootComponent;
42
form.ClientSize = new Size(200, 300);
44
PropertyDescriptorCollection descriptors = TypeDescriptor.GetProperties(form);
45
PropertyDescriptor namePropertyDescriptor = descriptors.Find("Name", false);
46
namePropertyDescriptor.SetValue(form, "MainForm");
48
// Set bitmap as form background image.
49
bitmap = new Bitmap(10, 10);
50
form.BackgroundImage = bitmap;
52
icon = new Icon(typeof(GenerateFormResourceTestFixture), "App.ico");
55
DesignerSerializationManager serializationManager = new DesignerSerializationManager(host);
56
using (serializationManager.CreateSession()) {
57
PythonCodeDomSerializer serializer = new PythonCodeDomSerializer(" ");
58
generatedPythonCode = serializer.GenerateInitializeComponentMethodBody(host, serializationManager, "RootNamespace", 1);
64
public void TearDownFixture()
71
public void GeneratedCode()
73
string expectedCode = " resources = System.Resources.ResourceManager(\"RootNamespace.MainForm\", System.Reflection.Assembly.GetEntryAssembly())\r\n" +
74
" self.SuspendLayout()\r\n" +
78
" self.BackgroundImage = resources.GetObject(\"$this.BackgroundImage\")\r\n" +
79
" self.ClientSize = System.Drawing.Size(200, 300)\r\n" +
80
" self.Icon = resources.GetObject(\"$this.Icon\")\r\n" +
81
" self.Name = \"MainForm\"\r\n" +
82
" self.ResumeLayout(False)\r\n";
84
Assert.AreEqual(expectedCode, generatedPythonCode, generatedPythonCode);
88
public void BitmapAddedToResourceWriter()
90
Assert.IsTrue(Object.ReferenceEquals(bitmap, resourceWriter.GetResource("$this.BackgroundImage")));
94
public void IconAddedToResourceWriter()
96
Assert.IsTrue(Object.ReferenceEquals(icon, resourceWriter.GetResource("$this.Icon")));