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() ]]>