From 00d6381b69d582b01aaeb35d604bc62abf6ff057 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Thu, 11 Dec 2025 09:28:44 -0500 Subject: [PATCH 1/3] #12033 fix create template ui --- .../engine/command/impl/CreateTemplateCommand.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java index fb5e3534f0e..f4f29111b00 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java @@ -53,9 +53,11 @@ public Template execute(CommandContext ctxt) throws CommandException { if (initialize && template.isIsDefaultForDataverse()) { dataverse.setDefaultTemplate(createdTemplate); ctxt.em().merge(dataverse); - } + } + + ctxt.em().flush(); + return createdTemplate; - return template; } private static void updateTermsOfUseAndAccess(CommandContext ctxt, Template template) { From a423b49c336502c2fb2e652b54f8656e48f7f6fb Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Thu, 11 Dec 2025 09:53:47 -0500 Subject: [PATCH 2/3] #12033 fix set default --- .../dataverse/engine/command/impl/CreateTemplateCommand.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java index f4f29111b00..69e19378b1a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java @@ -49,8 +49,9 @@ public Template execute(CommandContext ctxt) throws CommandException { } Template createdTemplate = ctxt.templates().save(template); - - if (initialize && template.isIsDefaultForDataverse()) { + + createdTemplate.setIsDefaultForDataverse(template.isIsDefaultForDataverse()); + if (initialize && createdTemplate.isIsDefaultForDataverse()) { dataverse.setDefaultTemplate(createdTemplate); ctxt.em().merge(dataverse); } From fa52d481d78efd7368af623532bd0897def3baf4 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Thu, 11 Dec 2025 11:22:12 -0500 Subject: [PATCH 3/3] #12033 fix command test --- .../command/impl/CreateTemplateCommandTest.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/test/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommandTest.java b/src/test/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommandTest.java index bf3daa6c593..71bcbad98b8 100644 --- a/src/test/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommandTest.java +++ b/src/test/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommandTest.java @@ -18,6 +18,7 @@ import org.mockito.Mockito; import org.mockito.Spy; import org.mockito.junit.jupiter.MockitoExtension; +import jakarta.persistence.EntityManager; import java.util.Collections; import java.util.List; @@ -42,6 +43,8 @@ public class CreateTemplateCommandTest { private LicenseServiceBean licenseServiceBeanMock; @Mock private DataverseFieldTypeInputLevelServiceBean fieldTypeInputLevelServiceBeanMock; + @Mock + private EntityManager em; @Spy private Template templateSpy; @@ -53,6 +56,7 @@ public class CreateTemplateCommandTest { public void setUp() { dataverseRequestStub = Mockito.mock(DataverseRequest.class); when(contextMock.templates()).thenReturn(templateServiceBeanStub); + when(contextMock.em()).thenReturn(em); } @Test @@ -60,8 +64,10 @@ public void execute_shouldSaveTemplate_noInitialization() throws CommandExceptio // Create the command with initialization set to false CreateTemplateCommand sut = new CreateTemplateCommand(templateSpy, dataverseRequestStub, dataverseMock, false); - + Template savedTemplate = mock(Template.class); + when(templateServiceBeanStub.save(templateSpy)).thenReturn(savedTemplate); // Act + sut.execute(contextMock); @@ -83,6 +89,9 @@ public void execute_shouldInitializeAndSaveTemplate_withInitialization() throws when(dataverseMock.getId()).thenReturn(42L); when(dataverseMock.isMetadataBlockRoot()).thenReturn(true); + + Template savedTemplate = mock(Template.class); + when(templateServiceBeanStub.save(templateSpy)).thenReturn(savedTemplate); // Mock system metadata blocks