@@ -49,7 +49,7 @@ Method TestEditProduction()
4949 do $System .OBJ .Delete (..#ProductionName)
5050 $$$ThrowOnError(##class (SourceControl.Git.Utils ).NewBranch (" branch1" ))
5151 $$$ThrowOnError(##class (SourceControl.Git.Production ).CreateProduction (..#ProductionName))
52- do ##class (%Studio.SourceControl.Interface ).SourceControlCreate ()
52+ do ##class (%Studio.SourceControl.Interface ).SourceControlCreate ()
5353 $$$ThrowOnError(##class (SourceControl.Git.Utils ).AddToSourceControl (..#ProductionName_" .cls" ))
5454
5555 do $$$LogMessage(" with production decomposition enabled, the production class should not be in source control." )
@@ -99,6 +99,29 @@ Method TestEditProduction()
9999 do $$$AssertEquals(production .Items .GetAt (1 ).Settings .GetAt (1 ).Value , 61 )
100100}
101101
102+ Method TestImportItemsWithError ()
103+ {
104+ new %SourceControl
105+ do $System .OBJ .Delete (..#ProductionName)
106+ $$$ThrowOnError(##class (SourceControl.Git.Production ).CreateProduction (..#ProductionName))
107+ do ##class (Ens.Director ).UpdateProduction ()
108+ do ##class (%Studio.SourceControl.Interface ).SourceControlCreate ()
109+ $$$ThrowOnError(%SourceControl .OnBeforeSave (..#ProductionName_" .cls" ))
110+ do ..ReplaceProductionDefinition (" ProductionDefinition3" )
111+ do %SourceControl .OnAfterSave (..#ProductionName_" .cls" )
112+ do $$$AssertTrue(##class (SourceControl.Git.Utils ).IsInSourceControl (" UnitTest.SampleProduction||ProductionSettings-UnitTest.SampleProduction.PTD" ))
113+ $$$ThrowOnError(##class (Ens.Deployment.Deploy ).ClearDeploymentInProgressFlag ())
114+ // make one of the items fail
115+ set filePath = ##class (SourceControl.Git.Utils ).FullExternalName (" UnitTest.SampleProduction||Settings-b|EnsLib.SOAP.GenericOperation.PTD" )
116+ set filestream = ##class (%Stream.FileCharacter ).%OpenId (filePath ,,.sc )
117+ $$$ThrowOnError(filestream )
118+ do filestream .Write (" this will break the xml" )
119+ $$$ThrowOnError(filestream .%Save ())
120+ do $$$AssertStatusNotOK(##class (SourceControl.Git.Utils ).ImportItem (" UnitTest.SampleProduction||Settings-b|EnsLib.SOAP.GenericOperation.PTD" ))
121+ /// and this one should succeed, even though the previous one failed
122+ do $$$AssertStatusOK(##class (SourceControl.Git.Utils ).ImportItem (" UnitTest.SampleProduction||Settings-a|Ens.Activity.Operation.Local.PTD" ))
123+ }
124+
102125ClassMethod ReplaceProductionDefinition (pXDataName )
103126{
104127 new %SourceControl
0 commit comments