1 using System;
2 using NUnit.Framework;
3 using Premake.Tests.Framework;
4 
5 namespace Premake.Tests.Vs2002.Cs
6 {
7 	[TestFixture]
8 	public class Test_Defines
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 Vs2002Parser();
25 		}
26 
Run()27 		public void Run()
28 		{
29 			TestEnvironment.Run(_script, _parser, _expects, null);
30 		}
31 		#endregion
32 
33 		[Test]
Test_NoDefines()34 		public void Test_NoDefines()
35 		{
36 			_expects.Package[0].Config[0].Defines = new string[] { };
37 			_expects.Package[0].Config[1].Defines = new string[] { };
38 			Run();
39 		}
40 
41 		[Test]
Test_DefinesOnPackage()42 		public void Test_DefinesOnPackage()
43 		{
44 			_script.Append("package.defines = { 'TRACE', 'EXPORT' }");
45 			_expects.Package[0].Config[0].Defines = new string[] { "TRACE", "EXPORT" };
46 			_expects.Package[0].Config[1].Defines = new string[] { "TRACE", "EXPORT" };
47 			Run();
48 		}
49 
50 		[Test]
Test_DefinesInPackageConfig()51 		public void Test_DefinesInPackageConfig()
52 		{
53 			_script.Append("package.config['Debug'].defines = { 'DEBUG' }");
54 			_script.Append("package.config['Release'].defines = { 'NDEBUG' }");
55 			_expects.Package[0].Config[0].Defines = new string[] { "DEBUG" };
56 			_expects.Package[0].Config[1].Defines = new string[] { "NDEBUG" };
57 			Run();
58 		}
59 
60 		[Test]
Test_DefinesOnPackageAndConfig()61 		public void Test_DefinesOnPackageAndConfig()
62 		{
63 			_script.Append("package.defines = { 'TRACE' }");
64 			_script.Append("package.config['Debug'].defines = { 'DEBUG' }");
65 			_script.Append("package.config['Release'].defines = { 'NDEBUG' }");
66 			_expects.Package[0].Config[0].Defines = new string[] { "TRACE", "DEBUG" };
67 			_expects.Package[0].Config[1].Defines = new string[] { "TRACE", "NDEBUG" };
68 			Run();
69 		}
70 	}
71 }
72