Пример #1
0
        public void Builds_solution_to_a_particular_directory()
        {
            SolutionBuilder builder = new SolutionBuilder();
            bool result = builder.Build(@"D:\SourceControl\Seacrest\src\Seacrest.sln", _outDir);

            Assert.IsTrue(result);
        }
        public void AllProjectsHaveSameOutputDirectory()
        {
            var testPath = Path.Combine("temp", "AllProjectsHaveSameOutputDirectory");
            var sb       = new SolutionBuilder("AllProjectsHaveSameOutputDirectory.sln")
            {
                SolutionPath = Path.Combine(Root, testPath),
                Verbosity    = LoggerVerbosity.Diagnostic,
            };

            var app1 = new XamarinAndroidApplicationProject()
            {
                ProjectName = "App1",
                OutputPath  = Path.Combine("..", "bin", "Debug"),
            };

            sb.Projects.Add(app1);
            var app2 = new XamarinAndroidApplicationProject()
            {
                ProjectName = "App2",
                OutputPath  = Path.Combine("..", "bin", "Debug"),
            };

            sb.Projects.Add(app2);
            Assert.IsTrue(sb.Build(), "Build of solution should have succeeded");
            Assert.IsTrue(sb.ReBuild(), "ReBuild of solution should have succeeded");
            sb.Dispose();
        }
Пример #3
0
        public AndroidApplicationContext(BaseScreen baseActivity, Settings settings, Action loadComplete)
        {
            ApplicationBackground += () => { };
            ApplicationRestore    += () => { };

            GlobalVariables = new Dictionary <string, object>();

            _baseActivity = baseActivity;
            _settings     = settings;
            _loadComplete = loadComplete;

            LocationProvider          = new GpsProvider(_baseActivity);
            LocationTracker           = new GpsTracker(_baseActivity);
            GalleryProvider           = new GalleryProvider(_baseActivity, this);
            CameraProvider            = new CameraProvider(_baseActivity, this);
            DialogProvider            = new DialogProvider(_baseActivity, this);
            DisplayProvider           = new DisplayProvider();
            ClipboardProvider         = new ClipboardProvider(_baseActivity);
            EmailProvider             = new EmailProvider(_settings, _baseActivity);
            JokeProviderInternal      = new JokeProvider(_baseActivity);
            LocalNotificationProvider = new LocalNotificationProvider(_baseActivity);
            WebProvider = new WebProvider(_baseActivity);

            var builder = new SolutionBuilder(this);

            builder.Build();

            _commonData = ValueStackContext.Current.CreateCommonData("Android");
        }
        public void BeforeAll()
        {
            _solutionName = "MySolution.sln";
            _fullFilePath = @"C:\where I am\A Solution\MySolution.sln";
            _projectOne = Builder<Project>.CreateNew().Build();
            _projectTwo = Builder<Project>.CreateNew().Build();
            _nuspec1 = Builder<NuSpecFile>.CreateNew().Build();
            _nuspec2 = Builder<NuSpecFile>.CreateNew().Build();

            var solutionFileContents = GetSolutionFileContents();

            var fileSystem = new Mock<IFileSystem>();
            fileSystem.Setup(fs => fs.FindFullFilePath(_solutionName)).Returns(_fullFilePath);
            fileSystem.Setup(fs => fs.ReadFile(_fullFilePath)).Returns(solutionFileContents);
            fileSystem.Setup(fs => fs.GetDirectory(_fullFilePath)).Returns("");

            var projectBuilder = new Mock<IBuilder<Project, BuildProjectRequest>>();
            projectBuilder.Setup(b => b.Build(It.Is<BuildProjectRequest>(projectRequest => projectRequest.ProjectFilePath == "Project1\\Project1.csproj"))).Returns(_projectOne);
            projectBuilder.Setup(b => b.Build(It.Is<BuildProjectRequest>(projectRequest => projectRequest.ProjectFilePath == "Project2\\Project2.csproj"))).Returns(_projectTwo);

            var nuspecBuilder = new Mock<IBuilder<NuSpecFile, string>>();
            nuspecBuilder.Setup(b => b.Build("spec1")).Returns(_nuspec1);
            nuspecBuilder.Setup(b => b.Build("spec2")).Returns(_nuspec2);

            var builder = new SolutionBuilder(fileSystem.Object, projectBuilder.Object, nuspecBuilder.Object);

            var request = new BuildSolutionRequest()
                .WithSolutionName(_solutionName)
                .WithNuSpec("spec1")
                .WithNuSpec("spec2");

            _solution = builder.Build(request);
        }
Пример #5
0
        public IOSApplicationContext(AppDelegate appDelegate, NavigationController controller,
                                     ApplicationSettings settings, CustomExceptionHandler exceptionHandler)
        {
            ApplicationBackground += () => { };
            ApplicationRestore    += () => { };

            GlobalVariables = new Dictionary <string, object>();

            Settings          = settings;
            _controller       = controller;
            _exceptionHandler = exceptionHandler;

            LocationProvider          = new GpsProvider();
            LocationTracker           = new GPSTracker();
            GalleryProvider           = new GalleryProvider(controller, this);
            CameraProvider            = new CameraProvider(controller, this);
            DialogProvider            = new DialogProvider(this);
            DisplayProvider           = new DisplayProvider();
            ClipboardProvider         = new ClipboardProvider();
            EmailProvider             = new EmailProvider(settings, appDelegate);
            JokeProviderInternal      = new JokeProvider();
            LocalNotificationProvider = new LocalNotificationProvider();
            WebProvider = new WebProvider();

            var builder = new SolutionBuilder(this);

            builder.Build();

            StyleSheetContext.Current.Scale = UIScreen.MainScreen.Scale;
        }
        public static void BeforeAll(TestContext context)
        {
            var solutionBuilder = new SolutionBuilder();
            var request = new BuildSolutionRequest()
                .WithSolutionName("NuGetSolutionValidator")
                .WithProjects(p => p.Name != "NugetSolutionValidator.Tests")
                .WithNuSpec("NuGetSolutionValidator")
                .WithNuSpecProjectSet("NuGetSolutionValidator", new[] { "NuGetSolutionValidator.NUnit" });

            _solution = solutionBuilder.Build(request);
        }
        public void BeforeAll()
        {
            var solutionBuilder = new SolutionBuilder();
            var request = new BuildSolutionRequest()
                .WithSolutionName("NuGetSolutionValidator")
                .WithProjects(p => p.Name.Contains("SampleProject"))
                //.WithNuSpec("NuGetSolutionValidator")
                //.WithNuSpecProjectSet("NuGetSolutionValidator", new[] { "NuGetSolutionValidator.NUnit" })
                ;

            _solution = solutionBuilder.Build(request);
        }
Пример #8
0
        public static void BeforeAll(TestContext context)
        {
            var solutionBuilder = new SolutionBuilder();
            var request         = new BuildSolutionRequest()
                                  .WithSolutionName("NuGetSolutionValidator")
                                  .WithProjects(p => p.Name != "NugetSolutionValidator.Tests")
                                  .WithNuSpec("NuGetSolutionValidator.NUnit")
                                  .WithNuSpec("NuGetSolutionValidator.Xunit")
                                  .WithNuSpec("NuGetSolutionValidator.MSTest");

            _solution = solutionBuilder.Build(request);
        }
Пример #9
0
        public void BeforeAll()
        {
            var solutionBuilder = new SolutionBuilder();
            var request         = new BuildSolutionRequest()
                                  .WithSolutionName("NuGetSolutionValidator")
                                  .WithProjects(p => p.Name.Contains("SampleProject"))
                                  //.WithNuSpec("NuGetSolutionValidator")
                                  //.WithNuSpecProjectSet("NuGetSolutionValidator", new[] { "NuGetSolutionValidator.NUnit" })
            ;

            _solution = solutionBuilder.Build(request);
        }
Пример #10
0
        public NuGetValidationTests(ITestOutputHelper logger)
        {
            _logger = logger;
            var solutionBuilder = new SolutionBuilder();
            var request         = new BuildSolutionRequest()
                                  .WithSolutionName("NuGetSolutionValidator")
                                  .WithProjects(p => p.Name != "NugetSolutionValidator.Tests")
                                  .WithNuSpec("NuGetSolutionValidator.NUnit")
                                  .WithNuSpec("NuGetSolutionValidator.Xunit")
                                  .WithNuSpec("NuGetSolutionValidator.MSTest");

            _solution = solutionBuilder.Build(request);
        }
Пример #11
0
        public void SetUp()
        {
            theSolutionFiles = new StubSolutionFiles();
            theSolutionFiles.TheSolutionIs(new Solution {
                SourceFolder = "src", Directory = "."
            });
            theSolutionFiles.AddProject("Project1.csproj");
            theSolutionFiles.AddProject("Project2.csproj");

            p1 = new Project("Project1.csproj");
            p2 = new Project("Project2.csproj");

            theProjectReader = MockRepository.GenerateStub <IProjectReader>();
            theProjectReader.Stub(x => x.Read("Project1.csproj")).Return(p1);
            theProjectReader.Stub(x => x.Read("Project2.csproj")).Return(p2);

            theSolutionBuilder = new SolutionBuilder(theSolutionFiles, theProjectReader);
            theSolution        = theSolutionBuilder.Build();
        }
Пример #12
0
        public ApplicationContext(NavigationController controller, BitMobile.Application.ApplicationSettings settings, CustomExceptionHandler exceptionHandler)
        {
            GlobalVariables = new Dictionary <string, object> ();

            Settings          = settings;
            _controller       = controller;
            _exceptionHandler = exceptionHandler;

            LocationProvider = new GPSProvider();
            LocationTracker  = new GPSTracker();
            GalleryProvider  = new GalleryProvider(controller, this);
            CameraProvider   = new CameraProvider(controller, this);
            DialogProvider   = new DialogProvider(this);
            DisplayProvider  = new DisplayProvider();

            var builder = new SolutionBuilder(this);

            builder.Build();

            StyleSheetContext.Current.Scale = UIScreen.MainScreen.Scale;
        }
Пример #13
0
        public static string UpdateXCodeProjectAction()
        {
            if (The.Workspace.ProjectJson.GetValue <bool>("XCodeProject/DoSvnUpdate"))
            {
                Subversion.Update(GetXCodeProjectFolder());
            }
            AssetCooker.Cook(TargetPlatform.iOS);
            var solutionPath = The.Workspace.GetSolutionFilePath(TargetPlatform.iOS);
            var builder      = new SolutionBuilder(TargetPlatform.iOS, solutionPath);
            var output       = new StringBuilder();

            builder.Clean();
            if (builder.Build(output))
            {
                The.UI.ScrollLogToEnd();
                string allText = output.ToString();
                foreach (var line in allText.Split('\n'))
                {
                    if (line.Contains("/bin/mtouch"))
                    {
                        var mtouch = line;
                        GenerateUnsignedBinary(mtouch);
                        var appPath = GetGeneratedAppPath(mtouch);
                        var dstPath = GetXCodeProjectDataFolder();
                        CopyContent(appPath, dstPath);
                        CopyDSYM(appPath, Path.GetDirectoryName(dstPath));
                    }
                }
            }
            else
            {
                UserInterface.Instance.ExitWithErrorIfPossible();
                return("Build system has returned error");
            }
            if (The.Workspace.ProjectJson.GetValue <bool>("XCodeProject/DoSvnCommit"))
            {
                Subversion.Commit(GetXCodeProjectFolder(), "");
            }
            return(null);
        }
Пример #14
0
        public void BeforeAll()
        {
            _solutionName = "MySolution.sln";
            _fullFilePath = @"C:\where I am\A Solution\MySolution.sln";
            _projectOne   = Builder <Project> .CreateNew().Build();

            _projectTwo = Builder <Project> .CreateNew().Build();

            _nuspec1 = Builder <NuSpecFile> .CreateNew().Build();

            _nuspec2 = Builder <NuSpecFile> .CreateNew().Build();

            var solutionFileContents = GetSolutionFileContents();

            var fileSystem = new Mock <IFileSystem>();

            fileSystem.Setup(fs => fs.FindFullFilePath(_solutionName)).Returns(_fullFilePath);
            fileSystem.Setup(fs => fs.ReadFile(_fullFilePath)).Returns(solutionFileContents);
            fileSystem.Setup(fs => fs.GetDirectory(_fullFilePath)).Returns("");

            var projectBuilder = new Mock <IBuilder <Project, BuildProjectRequest> >();

            projectBuilder.Setup(b => b.Build(It.Is <BuildProjectRequest>(projectRequest => projectRequest.ProjectFilePath == "Project1\\Project1.csproj"))).Returns(_projectOne);
            projectBuilder.Setup(b => b.Build(It.Is <BuildProjectRequest>(projectRequest => projectRequest.ProjectFilePath == "Project2\\Project2.csproj"))).Returns(_projectTwo);

            var nuspecBuilder = new Mock <IBuilder <NuSpecFile, string> >();

            nuspecBuilder.Setup(b => b.Build("spec1")).Returns(_nuspec1);
            nuspecBuilder.Setup(b => b.Build("spec2")).Returns(_nuspec2);

            var builder = new SolutionBuilder(fileSystem.Object, projectBuilder.Object, nuspecBuilder.Object);

            var request = new BuildSolutionRequest()
                          .WithSolutionName(_solutionName)
                          .WithNuSpec("spec1")
                          .WithNuSpec("spec2");

            _solution = builder.Build(request);
        }
Пример #15
0
        public void BuildAMassiveApp()
        {
            var testPath = Path.Combine("temp", "BuildAMassiveApp");

            TestOutputDirectories [TestContext.CurrentContext.Test.ID] = Path.Combine(Root, testPath);
            var sb = new SolutionBuilder("BuildAMassiveApp.sln")
            {
                SolutionPath = Path.Combine(Root, testPath),
            };
            var app1 = new XamarinFormsMapsApplicationProject {
                TargetFrameworkVersion = sb.LatestTargetFrameworkVersion(),
                ProjectName            = "App1",
                AotAssemblies          = true,
                IsRelease = true,
            };

            //NOTE: BuildingInsideVisualStudio prevents the projects from being built as dependencies
            sb.BuildingInsideVisualStudio = false;
            app1.Imports.Add(new Import("foo.targets")
            {
                TextContent = () => @"<?xml version=""1.0"" encoding=""utf-16""?>
<Project ToolsVersion=""4.0"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<Target Name=""_CheckAbis"" BeforeTargets=""_DefineBuildTargetAbis"">
	<PropertyGroup>
		<AndroidSupportedAbis>armeabi-v7a;x86</AndroidSupportedAbis>
		<AndroidSupportedAbis Condition=""Exists('$(MSBuildThisFileDirectory)..\..\..\..\Debug\lib\xamarin.android\xbuild\Xamarin\Android\lib\arm64-v8a\libmono-android.release.so')"">$(AndroidSupportedAbis);arm64-v8a</AndroidSupportedAbis>
		<AndroidSupportedAbis Condition=""Exists('$(MSBuildThisFileDirectory)..\..\..\..\Debug\lib\xamarin.android\xbuild\Xamarin\Android\lib\x86_64\libmono-android.release.so')"">$(AndroidSupportedAbis);x86_64</AndroidSupportedAbis>
	</PropertyGroup>
	<Message Text=""$(AndroidSupportedAbis)"" />
</Target>
<Target Name=""_Foo"" AfterTargets=""_SetLatestTargetFrameworkVersion"">
	<PropertyGroup>
		<AotAssemblies Condition=""!Exists('$(MonoAndroidBinDirectory)"         + Path.DirectorySeparatorChar + @"cross-arm')"">False</AotAssemblies>
	</PropertyGroup>
	<Message Text=""$(AotAssemblies)"" />
</Target>
</Project>
",
            });
            sb.Projects.Add(app1);
            var code = new StringBuilder();

            code.AppendLine("using System;");
            code.AppendLine("namespace App1 {");
            code.AppendLine("\tpublic class AppCode {");
            code.AppendLine("\t\tpublic void Foo () {");
            for (int i = 0; i < 128; i++)
            {
                var libName = $"Lib{i}";
                var lib     = new XamarinAndroidLibraryProject()
                {
                    TargetFrameworkVersion = sb.LatestTargetFrameworkVersion(),
                    ProjectName            = libName,
                    IsRelease       = true,
                    OtherBuildItems =
                    {
                        new AndroidItem.AndroidAsset($"Assets\\{libName}.txt")
                        {
                            TextContent = () => "Asset1",
                            Encoding    = Encoding.ASCII,
                        },
                        new AndroidItem.AndroidAsset($"Assets\\subfolder\\{libName}.txt")
                        {
                            TextContent = () => "Asset2",
                            Encoding    = Encoding.ASCII,
                        },
                    },
                    Sources =
                    {
                        new BuildItem.Source($"{libName}.cs")
                        {
                            TextContent = () => @"using System;

namespace " + libName + @" {

	public class "     + libName + @" {
		public static void Foo () {
		}
	}
}"
                        },
                    }
                };
                var strings = lib.AndroidResources.First(x => x.Include() == "Resources\\values\\Strings.xml");
                strings.TextContent = () => @"<?xml version=""1.0"" encoding=""utf-8""?>
<resources>
	<string name="""     + libName + @"_name"">" + libName + @"</string>
</resources>";
                sb.Projects.Add(lib);
                app1.References.Add(new BuildItem.ProjectReference($"..\\{libName}\\{libName}.csproj", libName, lib.ProjectGuid));
                code.AppendLine($"\t\t\t{libName}.{libName}.Foo ();");
            }
            code.AppendLine("\t\t}");
            code.AppendLine("\t}");
            code.AppendLine("}");
            app1.Sources.Add(new BuildItem.Source("Code.cs")
            {
                TextContent = () => code.ToString(),
            });
            Assert.IsTrue(sb.Build(new string [] { "Configuration=Release" }), "Solution should have built.");
            Assert.IsTrue(sb.BuildProject(app1, "SignAndroidPackage"), "Build of project should have succeeded");
            sb.Dispose();
        }