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]