public void Pack_Upload_ReportError() { // Assemble CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["integration_testing"].ConnectionString); var userId = crmSvc.GetMyCrmUserId(); var trace = new TraceLogger(); Guid id = Guid.NewGuid(); var tempFolder = Path.Combine(Path.GetTempPath(), id.ToString()); Directory.CreateDirectory(tempFolder); try { var config = new ConfigFile { solutions = new List <SolutionPackageConfig> { new SolutionPackageConfig { solution_uniquename = "spkltestsolution", packagepath = "packager", increment_on_import = true } }, filePath = tempFolder }; // Create packaging task var task = new SolutionPackagerTask(crmSvc, trace); using (var ctx = new OrganizationServiceContext(crmSvc)) { ctx.MergeOption = MergeOption.NoTracking; task.UnPack(ctx, config); // Delete the Account relationship File.Delete(Path.Combine(config.filePath, @"packager\Other\Relationships\Account.xml")); bool correctError = false; try { var solutionZipTempPath = Path.GetTempFileName(); task.Pack(ctx, config, true); } catch (Exception ex) { // this is expected correctError = ex.Message.Contains("The element 'EntityRelationship' has incomplete content."); } Assert.IsTrue(correctError, "Error reported"); } } finally { try { Directory.Delete(tempFolder, true); } catch { } } }
public void Pack_Upload() { // Assemble CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["integration_testing"].ConnectionString); var userId = crmSvc.GetMyCrmUserId(); var trace = new TraceLogger(); Guid id = Guid.NewGuid(); var tempFolder = Path.Combine(Path.GetTempPath(), id.ToString()); Directory.CreateDirectory(tempFolder); try { var config = new ConfigFile { solutions = new List <SolutionPackageConfig> { new SolutionPackageConfig { solution_uniquename = "spkltestsolution", packagepath = "packager", increment_on_import = true } }, filePath = tempFolder }; // Create packaging task var task = new SolutionPackagerTask(crmSvc, trace); using (var ctx = new OrganizationServiceContext(crmSvc)) { ctx.MergeOption = MergeOption.NoTracking; task.UnPack(ctx, config); // Get current solution version var version = task.GetSolution("spkltestsolution").Version; task.Pack(ctx, config, true); var versionAfterUpload = task.GetSolution("spkltestsolution").Version; Assert.AreNotEqual(version, versionAfterUpload, "Version incremented"); } } finally { Directory.Delete(tempFolder, true); } }