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(); }
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); }
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); }
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); }
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); }
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(); }
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; }
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); }
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); }
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(); }