1 using System;
2 using NUnit.Framework;
3 using Premake.Tests.Framework;
4 
5 namespace Premake.Tests.MonoDev.Cs
6 {
7 	[TestFixture]
8 	public class Test_BuildActions
9 	{
10 		Script  _script;
11 		Project _expects;
12 		Parser  _parser;
13 
14 		#region Setup and Teardown
15 		[SetUp]
Test_Setup()16 		public void Test_Setup()
17 		{
18 			_script = Script.MakeBasic("exe", "c#");
19 
20 			_expects = new Project();
21 			_expects.Package.Add(1);
22 			_expects.Package[0].Config.Add(2);
23 
24 			_parser = new MonoDevParser();
25 		}
26 
Run()27 		public void Run()
28 		{
29 			TestEnvironment.Run(_script, _parser, _expects, null);
30 		}
31 		#endregion
32 
33 		[Test]
Test_DefaultCodeAction()34 		public void Test_DefaultCodeAction()
35 		{
36 			_script.Replace("'somefile.txt'", "'file0.cs'");
37 			_expects.Package[0].File.Add("./file0.cs", "Code", "Compile");
38 			Run();
39 		}
40 
41 		[Test]
Test_DefaultBuildAction()42 		public void Test_DefaultBuildAction()
43 		{
44 			_expects.Package[0].File.Add("./somefile.txt", "Nothing");
45 			Run();
46 		}
47 
48 		/* MonoDevelop doesn't support the "Content" build action */
49 #if UNSUPPORTED
50 		[Test]
Test_CodeAsContent()51 		public void Test_CodeAsContent()
52 		{
53 			_script.Replace("'somefile.txt'", "'file0.cs','file1.cs'");
54 			_script.Append("package.config['file1.cs'].buildaction = 'Content'");
55 			_expects.Package[0].File.Add("./file0.cs", "Compile");
56 			_expects.Package[0].File.Add("./file1.cs", "Content");
57 			Run();
58 		}
59 #endif
60 
61 		[Test]
Test_ResxAction()62 		public void Test_ResxAction()
63 		{
64 			_script.Replace("'somefile.txt'", "'file0.resx'");
65 			_expects.Package[0].File.Add("./file0.resx", null, "EmbeddedResource");
66 			Run();
67 		}
68 
69 
70 		[Test]
Test_ResxWithDependencyAction()71 		public void Test_ResxWithDependencyAction()
72 		{
73 			// MonoDevelop doesn't provide file dependencies, as far as I can tell
74 			_script.Replace("'somefile.txt'", "'file0.resx','file0.cs'");
75 			_expects.Package[0].File.Add("./file0.resx", null, "EmbeddedResource");
76 			_expects.Package[0].File.Add("./file0.cs");
77 			Run();
78 		}
79 
80 		[Test]
Test_CustomBuildAction()81 		public void Test_CustomBuildAction()
82 		{
83 			_script.Append("package.config['somefile.txt'].buildaction = 'EmbeddedResource'");
84 			_expects.Package[0].File.Add("./somefile.txt", "EmbeddedResource");
85 			Run();
86 		}
87 
88 	}
89 }
90