Index: AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter.cls.xml
===================================================================
diff -u -r49628 -r49692
--- AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter.cls.xml (.../EnvelopeConverter.cls.xml) (revision 49628)
+++ AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter.cls.xml (.../EnvelopeConverter.cls.xml) (revision 49692)
@@ -28,8 +28,13 @@
1
+
+TECH.Lock.MultiGlobalLocker
+1
+
+
-ProductItemConverter:AXimpl.Dynamics.ProductItemUpsertIn.Converter.ProductItemConverter,ProductAPI:DOM.PM.ProductAPI,ProductLookup:AXimpl.Admin.Common.ProductBepaler,MailAPI:TECH.Mail.MailAPI,Logger:vhLib.Logger
+ProductItemConverter:AXimpl.Dynamics.ProductItemUpsertIn.Converter.ProductItemConverter,ProductAPI:DOM.PM.ProductAPI,ProductLookup:AXimpl.Admin.Common.ProductBepaler,MailAPI:TECH.Mail.MailAPI,Logger:vhLib.Logger,MultiGlobalLocker:TECH.Lock.MultiGlobalLocker
1
1
%Status
@@ -40,6 +45,7 @@
Set ..ProductLookup = $$$Inject(ProductLookup, ##class(AXimpl.Admin.Common.ProductBepaler).%New())
Set ..MailAPI = $$$Inject(MailAPI,##class(TECH.Context).Instance().GeefMailAPI())
Set ..Logger = $$$Inject(Logger,##class(vhLib.Logger).%New())
+ Set ..MultiGlobalLocker = $$$Inject(MultiGlobalLocker, ##class(TECH.Lock.MultiGlobalLocker).%New())
Quit $$$OK
]]>
@@ -48,35 +54,49 @@
Message:AXif.Dynamics.ProductItemIn.Envelope
+
+
+Message:AXif.Dynamics.ProductItemIn.Envelope
+1
+
+
Index: vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter/Test.cls.xml
===================================================================
diff -u -r49628 -r49692
--- vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter/Test.cls.xml (.../Test.cls.xml) (revision 49628)
+++ vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/EnvelopeConverter/Test.cls.xml (.../Test.cls.xml) (revision 49692)
@@ -22,6 +22,7 @@
Do ProductLookupMock.VerwachtMethodCall("GeefProductIdVoorLeverancierId","IdentNummer","L||5005","vhbe-08614").DanReturn("")
#dim ProductAPIMock as vhTest.Mock.DOM.PM.ProductAPI = ##class(vhTest.Mock.DOM.PM.ProductAPI).MockInstance()
+ Do ProductAPIMock.VerwachtMethodCall("GeefProductIdVoorIdentNummer","IdentNummer").DanReturn("ProductID")
Set MailMock = ##class(vhTest.Mock.TECH.Mail.Mail).%New()
Do MailMock.VerwachtMethodCall("ZetVerzender",$$$SystemMail("Product Synchronizatie AX - Admin")).DanDoeNiks()
@@ -35,14 +36,22 @@
set LoggerMock = ##class(vhTest.Mock.vhLib.Logger).%New()
Do LoggerMock.VerwachtMethodCall("Warning","Productsynchronizatie AX - Admin","Voor principaal product 'IdentNummer' in AX bestaat het product voor SOPR contract 'vhbe-08614' nog niet." _ $$$CRLF _ "PM is verwittigd, geen actie nodig").DanDoeNiks()
- Set Converter = ##class(AXimpl.Dynamics.ProductItemUpsertIn.Converter.EnvelopeConverter).%New(ProductItemConverterMock,ProductAPIMock,ProductLookupMock,MailAPIMock,LoggerMock)
+ Set LockerMock = ##class(vhTest.Mock.TECH.Lock.MultiGlobalLocker).%New()
+ Do LockerMock.VerwachtMethodCall("ClearGlobalRefs").DanDoeNiks()
+ Do LockerMock.VerwachtMethodCall("VoegToeGlobalRef","^KPR(ProductID)").DanDoeNiks()
+ Do LockerMock.VerwachtMethodCall("Lock",1).DanReturn($$$True)
+ Do LockerMock.VerwachtMethodCall("Unlock").DanDoeNiks()
+ Set Converter = ##class(AXimpl.Dynamics.ProductItemUpsertIn.Converter.EnvelopeConverter).%New(ProductItemConverterMock,ProductAPIMock,ProductLookupMock,MailAPIMock,LoggerMock,LockerMock)
+
Do Converter.Convert(Envelope)
Do ProductItemConverterMock.Verifieer()
Do ProductLookupMock.Verifieer()
Do MailAPIMock.Verifieer()
Do MailMock.Verifieer()
Do LoggerMock.Verifieer()
+ Do ProductAPIMock.Verifieer()
+ Do LockerMock.Verifieer()
]]>
@@ -69,24 +78,32 @@
Do ProductItemConverterMock.VerwachtMethodCall("ConvertProductItem",..Matches.DataTransferObject(SOPR),"vhbe").DanDoeNiks().ExactAantalKeer(1)
Set ProductLookupMock = ##class(vhTest.Mock.AXimpl.Admin.Common.ProductBepaler).%New()
- Do ProductLookupMock.VerwachtMethodCall("GeefProductIdVoorLeverancierId","IdentNummer","L||5005","vhbe-08614").DanReturn("SOPRProductId")
+ Do ProductLookupMock.VerwachtMethodCall("GeefProductIdVoorLeverancierId","IdentNummer","L||5005","vhbe-08614").DanReturn("SOPRProductID")
Set ProductMock = ##class(vhTest.Mock.DOM.PM.Product).%New()
Do ProductMock.VerwachtMethodCall("GeefIdentNr").DanReturn("SOPRIdentNummer")
DO ProductMock.VerwachtMethodCall("GeefKorttekst").DanReturn("SOPRKorttekst")
#dim ProductAPIMock as vhTest.Mock.DOM.PM.ProductAPI = ##class(vhTest.Mock.DOM.PM.ProductAPI).MockInstance()
- Do ProductAPIMock.VerwachtMethodCall("GeefProduct","SOPRProductId",).DanReturn(ProductMock)
+ Do ProductAPIMock.VerwachtMethodCall("GeefProductIdVoorIdentNummer","IdentNummer",).DanReturn("ProductID")
+ Do ProductAPIMock.VerwachtMethodCall("GeefProduct","SOPRProductID",).DanReturn(ProductMock)
#dim MailAPIMock as vhTest.Mock.TECH.Mail.MailAPI = ##class(vhTest.Mock.TECH.Mail.MailAPI).MockInstance()
+ Set LockerMock = ##class(vhTest.Mock.TECH.Lock.MultiGlobalLocker).%New()
+ Do LockerMock.VerwachtMethodCall("ClearGlobalRefs").DanDoeNiks()
+ Do LockerMock.VerwachtMethodCall("VoegToeGlobalRef","^KPR(ProductID)").DanDoeNiks()
+ Do LockerMock.VerwachtMethodCall("VoegToeGlobalRef","^KPR(SOPRProductID)").DanDoeNiks()
+ Do LockerMock.VerwachtMethodCall("Lock",1).DanReturn($$$True)
+ Do LockerMock.VerwachtMethodCall("Unlock").DanDoeNiks()
- Set Converter = ##class(AXimpl.Dynamics.ProductItemUpsertIn.Converter.EnvelopeConverter).%New(ProductItemConverterMock,ProductAPIMock,ProductLookupMock,MailAPIMock)
+ Set Converter = ##class(AXimpl.Dynamics.ProductItemUpsertIn.Converter.EnvelopeConverter).%New(ProductItemConverterMock,ProductAPIMock,ProductLookupMock,MailAPIMock,,LockerMock)
Do Converter.Convert(Envelope)
Do ProductMock.Verifieer()
Do ProductAPIMock.Verifieer()
Do ProductItemConverterMock.Verifieer()
Do ProductLookupMock.Verifieer()
+ Do LockerMock.Verifieer()
]]>