public void processVerstrekkingAanAfnemer(VerstrekkingAanAfnemer verstrekkingAanAfnemer){
        if (logger.isDebugEnabled())
            logger.debug("Processing verstrekkingAanAfnemer: {}", marshallElement(verstrekkingAanAfnemer));

        Afnemersbericht afnemersbericht = afnemersberichtRepository.findByOnzeReferentie(verstrekkingAanAfnemer.getReferentieId());
        if(mismatch(verstrekkingAanAfnemer, afnemersbericht)){
            digidXClient.remoteLogBericht(Log.NO_RELATION_TO_SENT_MESSAGE, verstrekkingAanAfnemer, afnemersbericht);
            return;
        }

        switch (verstrekkingAanAfnemer.getGebeurtenissoort().getNaam()) {
            case "Null" -> {
                logger.info("Start processing Null message");
                dglResponseService.processNullMessage(verstrekkingAanAfnemer.getGebeurtenisinhoud().getNull(), afnemersbericht);
                digidXClient.remoteLogWithoutRelatingToAccount(Log.MESSAGE_PROCESSED, "Null");
            }
            case "Ag01" -> {
                logger.info("Start processing Ag01 message");
                dglResponseService.processAg01(verstrekkingAanAfnemer.getGebeurtenisinhoud().getAg01(), afnemersbericht);
                digidXClient.remoteLogBericht(Log.MESSAGE_PROCESSED, verstrekkingAanAfnemer, afnemersbericht);
            }
            case "Ag31" -> {
                logger.info("Start processing Ag31 message");
                dglResponseService.processAg31(verstrekkingAanAfnemer.getGebeurtenisinhoud().getAg31(), afnemersbericht);
                digidXClient.remoteLogBericht(Log.MESSAGE_PROCESSED, verstrekkingAanAfnemer, afnemersbericht);
            }
            case "Af01" -> {
                logger.info("Start processing Af01 message");
                dglResponseService.processAf01(verstrekkingAanAfnemer.getGebeurtenisinhoud().getAf01(), afnemersbericht);
                digidXClient.remoteLogBericht(Log.MESSAGE_PROCESSED, verstrekkingAanAfnemer, afnemersbericht);
            }
            case "Af11" -> {
                logger.info("Start processing Af11 message");
                dglResponseService.processAf11(verstrekkingAanAfnemer.getGebeurtenisinhoud().getAf11(), afnemersbericht);
                digidXClient.remoteLogWithoutRelatingToAccount(Log.MESSAGE_PROCESSED, "Af11");
            }
            case "Gv01" -> {
                logger.info("Start processing Gv01 message");
                Gv01 gv01 = verstrekkingAanAfnemer.getGebeurtenisinhoud().getGv01();
                dglResponseService.processGv01(gv01);
                String bsn = CategorieUtil.findBsnOudeWaarde(gv01.getCategorie());
                if (bsn == null) {
                    bsn = CategorieUtil.findBsn(gv01.getCategorie());
                }
                digidXClient.remoteLogSpontaneVerstrekking(Log.MESSAGE_PROCESSED, "Gv01", gv01.getANummer(), bsn);
            }
            case "Ng01" -> {
                logger.info("Start processing Ng01 message");
                Ng01 ng01 = verstrekkingAanAfnemer.getGebeurtenisinhoud().getNg01();
                dglResponseService.processNg01(ng01);
                digidXClient.remoteLogSpontaneVerstrekking(Log.MESSAGE_PROCESSED, "Ng01", CategorieUtil.findANummer(ng01.getCategorie()), "");
            }
            case "Wa11" -> {
                logger.info("Start processing Wa11 message");
                dglResponseService.processWa11(verstrekkingAanAfnemer.getGebeurtenisinhoud().getWa11());
            }
        }
    }
@Test
    public void testProcessGv01(){
        String testAnummer = "SSSSSSSSSS";
        String testBsnOud = "SSSSSSSSS";
        String testBsnNieuw = "SSSSSSSSS";
        Gv01 testGv01 = TestDglMessagesUtil.createTestGv01(testAnummer, "O", testBsnOud, testBsnNieuw);
        VerstrekkingInhoudType inhoudType = new VerstrekkingInhoudType();
        inhoudType.setGv01(testGv01);
        GeversioneerdType type = new GeversioneerdType();
        type.setNaam("Gv01");

        when(verstrekkingAanAfnemer.getReferentieId()).thenReturn(null);
        when(verstrekkingAanAfnemer.getGebeurtenissoort()).thenReturn(type);
        when(verstrekkingAanAfnemer.getGebeurtenisinhoud()).thenReturn(inhoudType);

        classUnderTest.processVerstrekkingAanAfnemer(verstrekkingAanAfnemer);

        verify(dglResponseService, times(1)).processGv01(testGv01);
    }