Add test for only-matching strategy for resource shortage
This commit is contained in:
		
							parent
							
								
									19bd50ec0f
								
							
						
					
					
						commit
						65934b01e7
					
				@ -845,6 +845,42 @@ public class NotificationRuleApiTest extends AbstractNotificationApiTest {
 | 
			
		||||
        await("").atMost(5, TimeUnit.SECONDS).untilAsserted(() -> assertThat(getMyNotifications(false, 100)).size().isOne());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testNotificationsResourcesShortage_whenThresholdChangeToMatchingFilter_thenSendNotification() throws Exception {
 | 
			
		||||
        loginSysAdmin();
 | 
			
		||||
        ResourcesShortageNotificationRuleTriggerConfig triggerConfig = ResourcesShortageNotificationRuleTriggerConfig.builder()
 | 
			
		||||
                .ramThreshold(1f)
 | 
			
		||||
                .cpuThreshold(1f)
 | 
			
		||||
                .storageThreshold(1f)
 | 
			
		||||
                .build();
 | 
			
		||||
        NotificationRule rule = createNotificationRule(triggerConfig, "Warning: ${resource} shortage", "${resource} shortage", createNotificationTarget(tenantAdminUserId).getId());
 | 
			
		||||
        loginTenantAdmin();
 | 
			
		||||
 | 
			
		||||
        Method method = DefaultSystemInfoService.class.getDeclaredMethod("saveCurrentMonolithSystemInfo");
 | 
			
		||||
        method.setAccessible(true);
 | 
			
		||||
        method.invoke(systemInfoService);
 | 
			
		||||
 | 
			
		||||
        TimeUnit.SECONDS.sleep(5);
 | 
			
		||||
        assertThat(getMyNotifications(false, 100)).size().isZero();
 | 
			
		||||
 | 
			
		||||
        loginSysAdmin();
 | 
			
		||||
        triggerConfig = ResourcesShortageNotificationRuleTriggerConfig.builder()
 | 
			
		||||
                .ramThreshold(0.01f)
 | 
			
		||||
                .cpuThreshold(1f)
 | 
			
		||||
                .storageThreshold(1f)
 | 
			
		||||
                .build();
 | 
			
		||||
        rule.setTriggerConfig(triggerConfig);
 | 
			
		||||
        saveNotificationRule(rule);
 | 
			
		||||
        loginTenantAdmin();
 | 
			
		||||
 | 
			
		||||
        method.invoke(systemInfoService);
 | 
			
		||||
 | 
			
		||||
        await().atMost(10, TimeUnit.SECONDS).until(() -> getMyNotifications(false, 100).size() == 1);
 | 
			
		||||
        Notification notification = getMyNotifications(false, 100).get(0);
 | 
			
		||||
        assertThat(notification.getSubject()).isEqualTo("Warning: RAM shortage");
 | 
			
		||||
        assertThat(notification.getText()).isEqualTo("RAM shortage");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testNotificationRuleDisabling() throws Exception {
 | 
			
		||||
        EntityActionNotificationRuleTriggerConfig triggerConfig = new EntityActionNotificationRuleTriggerConfig();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user