Skip to content

Commit

Permalink
feat: coverage event ext (#276)
Browse files Browse the repository at this point in the history
* feat: coverage event ext
  • Loading branch information
QizhengMo authored Sep 19, 2024
1 parent e2bd5dc commit 2189363
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.arextest.storage.service.handler.mocker.coverage;

import com.arextest.model.mock.Mocker;

/**
* @author: QizhengMo
* @date: 2024/9/18 18:58
*/
public interface CoverageEventListener {
void onBeforeNewCaseRecord(Mocker coverageMocker);
void onNewCaseRecorded(Mocker coverageMocker);

void onBeforeExistingCaseRecord(Mocker coverageMocker);
void onExistingCaseRecorded(Mocker coverageMocker);
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ public class CoverageMockerHandler implements MockerHandler {
private InvalidRecordService invalidRecordService;
private DefaultApplicationConfig defaultApplicationConfig;
private CacheProvider cacheProvider;
public final List<MetricListener> metricListeners;
private final List<MetricListener> metricListeners;
private final CoverageEventListener coverageEventListener;

// coverage metric constants
private static final String METRIC_NAME_RECORD_COVERAGE = "coverage.recording";
private static final String METRIC_NAME_REPLAY_COVERAGE = "coverage.replay";
Expand Down Expand Up @@ -286,12 +288,18 @@ public void run() {

// scene exist remove Rolling mocker
if (scenePoolProvider.checkSceneExist(appId, sceneKey)) {
coverageEventListener.onBeforeExistingCaseRecord(coverageMocker);

invalidRecordService.putInvalidCaseInRedis(recordId);
mockSourceEditionService.removeByRecordId(ProviderNames.DEFAULT, coverageMocker.getRecordId());
LOGGER.info("{}CoverageMockerHandler received existing case, recordId: {}, pathKey: {}",
TITLE_RECORD_TASK, coverageMocker.getRecordId(), coverageMocker.getOperationName());

coverageEventListener.onExistingCaseRecorded(coverageMocker);
} else {
op = NEW_SCENE_OP;
coverageEventListener.onBeforeNewCaseRecord(coverageMocker);

// new scene: extend mocker expiration and insert scene
Scene scene = convert(coverageMocker);

Expand All @@ -301,6 +309,8 @@ public void run() {
defaultApplicationConfig.getConfigAsLong(COVERAGE_EXPIRATION_DAYS_KEY, COVERAGE_EXPIRATION_DAYS));
LOGGER.info("{}CoverageMockerHandler received new case, recordId: {}, pathKey: {}",
TITLE_RECORD_TASK, coverageMocker.getRecordId(), coverageMocker.getOperationName());

coverageEventListener.onNewCaseRecorded(coverageMocker);
}

recordCoverageHandle(appId, op, METRIC_NAME_RECORD_COVERAGE);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.arextest.storage.service.handler.mocker.coverage;

import com.arextest.model.mock.Mocker;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.stereotype.Service;

/**
* @author: QizhengMo
* @date: 2024/9/18 19:00
*/
@Service
@ConditionalOnMissingBean(CoverageEventListener.class)
public class DefaultCoverageEventListener implements CoverageEventListener {

@Override
public void onBeforeNewCaseRecord(Mocker coverageMocker) {
}

@Override
public void onNewCaseRecorded(Mocker coverageMocker) {
}

@Override
public void onBeforeExistingCaseRecord(Mocker coverageMocker) {
}

@Override
public void onExistingCaseRecorded(Mocker coverageMocker) {
}
}
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@
</profiles>

<properties>
<revision>1.3.4</revision>
<revision>1.3.5</revision>
<commons-lang3.version>3.3.2</commons-lang3.version>
<java.version>1.8</java.version>

Expand Down

0 comments on commit 2189363

Please sign in to comment.