oscerd commented on code in PR #29238:
URL: https://github.com/apache/camel/pull/29238#discussion_r4492276827


##########
components/camel-azure/camel-azure-functions/src/test/java/org/apache/camel/component/azure/functions/integration/FunctionsProducerManagementIT.java:
##########
@@ -50,50 +68,113 @@
  * -DAZURE_CLIENT_ID=xxx -DAZURE_CLIENT_SECRET=xxx -DAZURE_TENANT_ID=xxx
  * </pre>
  */
-@EnabledIfSystemProperty(named = 
BaseFunctionsTestSupport.SUBSCRIPTION_ID_PROPERTY, matches = ".*",
-                         disabledReason = "Azure subscription credentials must 
be supplied to run this test, e.g: "
-                                          + "mvn verify -D" + 
BaseFunctionsTestSupport.FUNCTION_APP_PROPERTY + "=myApp "
-                                          + "-D" + 
BaseFunctionsTestSupport.SUBSCRIPTION_ID_PROPERTY + "=mySubscription "
-                                          + "-D" + 
BaseFunctionsTestSupport.RESOURCE_GROUP_PROPERTY + "=myResourceGroup")
 public class FunctionsProducerManagementIT extends BaseFunctionsTestSupport {
 
+    // against Floci AZ, unless a subscription is given
+    private static final boolean REMOTE = SUBSCRIPTION_ID != null;
+
+    static {
+        if (REMOTE) {
+            System.setProperty("azure.instance.type", "remote");
+        }
+    }
+
+    @RegisterExtension
+    static AzureFunctionsService service = 
AzureFunctionsServiceFactory.createSingletonService();
+
+    // the function app of the tests: the given one, or one they create on 
Floci AZ
+    private static final String APP = REMOTE ? FUNCTION_APP : 
"camel-functions-it";
+    // the function app the delete test creates on Floci AZ
+    private static final String APP_TO_DELETE = "camel-functions-it-delete";
+
+    private static final String FLOCI_AZ_GAP
+            = "Floci AZ does not serve the config/logs of a site, which the 
Azure SDK reads to get a function app"
+              + " (GET .../sites/{name}/config/logs answers 404 
ResourceNotFound)";
+    private static final String REMOTE_ONLY = ". Supply an Azure subscription 
to run this test, e.g: mvn verify -D"
+                                              + FUNCTION_APP_PROPERTY + 
"=myApp -D" + SUBSCRIPTION_ID_PROPERTY
+                                              + "=mySubscription -D" + 
RESOURCE_GROUP_PROPERTY + "=myResourceGroup";
+
     private static final String DIRECT_LIST_APPS = "direct:listApps";
     private static final String DIRECT_GET_APP = "direct:getApp";
     private static final String DIRECT_LIST_FUNCTIONS = "direct:listFunctions";
     private static final String DIRECT_GET_CONFIG = "direct:getConfig";
     private static final String DIRECT_LIST_TAGS = "direct:listTags";
+    private static final String DIRECT_DELETE_APP = "direct:deleteApp";
+
+    private static AppServiceManager appServiceManager;
 
     private ProducerTemplate producerTemplate;
 
+    @BeforeAll
+    static void createFunctionApp() {
+        if (!REMOTE) {
+            appServiceManager = 
AzureFunctionsClientUtils.createLocalAppServiceManager(service);
+            
appServiceManager.resourceManager().resourceGroups().define(service.resourceGroup())
+                    .withRegion(Region.EUROPE_WEST)
+                    .create();
+            createSite(APP);
+        }
+    }
+
+    /**
+     * Creates a function app as a Microsoft.Web/sites resource: Floci AZ 
serves no App Service plan, which the
+     * createFunctionApp operation creates first.
+     */
+    private static void createSite(String name) {
+        SiteInner site = new SiteInner()
+                .withKind("functionapp,linux")
+                .withSiteConfig(new 
SiteConfigInner().withLinuxFxVersion("Java|21"))
+                .withLocation(Region.EUROPE_WEST.name());
+        
appServiceManager.serviceClient().getWebApps().createOrUpdate(service.resourceGroup(),
 name, site);
+    }
+
     @BeforeEach
     void beforeEach() {
         producerTemplate = contextExtension.getProducerTemplate();
     }
 
+    @Override
+    @ContextFixture
+    public void configureComponent(CamelContext context) {
+        super.configureComponent(context);
+
+        if (!REMOTE) {
+            FunctionsConfiguration configuration
+                    = context.getComponent("azure-functions", 
FunctionsComponent.class).getConfiguration();
+            configuration.setSubscriptionId(service.subscriptionId());
+            configuration.setResourceGroup(service.resourceGroup());
+            configuration.setAppServiceManager(appServiceManager);
+        }
+    }

Review Comment:
   Fixed in 09bfcd0f08db: the test creates its own service with 
`createService()`, so its mode is the one its static block chooses, whatever 
other class initializes the singleton.
   
   _Claude Code on behalf of Andrea Cosentino_



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to