|
51 | 51 | import org.junit.BeforeClass; |
52 | 52 | import org.junit.Test; |
53 | 53 |
|
54 | | -import com.google.common.collect.ImmutableList; |
55 | | - |
56 | 54 | /** |
57 | 55 | * Unit test for testing the data provider manager. |
58 | 56 | */ |
@@ -431,50 +429,85 @@ public void testFactoryMethods() { |
431 | 429 | assertEquals(1, count); |
432 | 430 | } |
433 | 431 |
|
434 | | - /** |
435 | | - * Test different add/remove methods |
436 | | - */ |
437 | | - @Test |
438 | | - public void testAddRemoveFactoryMethods() { |
439 | | - String myId = "my-id"; |
440 | | - IDataProviderFactory testFactory = new IDataProviderFactory() { |
441 | | - @Override |
442 | | - public @Nullable ITmfTreeDataProvider<? extends ITmfTreeDataModel> createProvider(@NonNull ITmfTrace trace) { |
| 432 | + /** |
| 433 | + * Test different factory add/remove methods |
| 434 | + */ |
| 435 | + @SuppressWarnings("unchecked") |
| 436 | + @Test |
| 437 | + public void testAddRemoveFactoryMethods() { |
| 438 | + String myId = "my-id"; |
| 439 | + IDataProviderFactory testFactory = createCustomFactory(myId); |
| 440 | + ITmfTrace trace = fKernelTrace; |
| 441 | + assertNotNull(trace); |
| 442 | + DataProviderManager.getInstance().addDataProviderFactory(myId, testFactory); |
| 443 | + assertEquals(testFactory, DataProviderManager.getInstance().getFactory(myId)); |
| 444 | + List<IDataProviderDescriptor> kernelDescriptors = DataProviderManager.getInstance().getAvailableProviders(trace); |
| 445 | + assertEquals(1, kernelDescriptors.stream().filter(desc -> desc.getId().equals(myId)).count()); |
443 | 446 |
|
444 | | - KernelAnalysisModule module = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelAnalysisModule.class, KernelAnalysisModule.ID); |
445 | | - if (module != null) { |
446 | | - return new ThreadStatusDataProvider(trace, module) { |
447 | | - @Override |
448 | | - public @NonNull String getId() { |
449 | | - return myId; |
450 | | - } |
451 | | - }; |
452 | | - } |
| 447 | + ITimeGraphDataProvider<?> dp = DataProviderManager.getInstance().getOrCreateDataProvider(trace, myId, ITimeGraphDataProvider.class); |
| 448 | + assertNotNull(dp); |
453 | 449 |
|
454 | | - return null; |
455 | | - } |
456 | | - @Override |
457 | | - public @NonNull Collection<IDataProviderDescriptor> getDescriptors(@NonNull ITmfTrace trace) { |
458 | | - return ImmutableList.of(new DataProviderDescriptor.Builder() |
459 | | - .setId(myId) |
460 | | - .setName(Objects.requireNonNull("")) |
461 | | - .setDescription(Objects.requireNonNull("")) |
462 | | - .setProviderType(ProviderType.TIME_GRAPH) |
463 | | - .build()); |
464 | | - } |
465 | | - }; |
466 | | - ITmfTrace trace = fKernelTrace; |
467 | | - assertNotNull(trace); |
468 | | - DataProviderManager.getInstance().addDataProviderFactory(myId, testFactory); |
469 | | - assertEquals(testFactory, DataProviderManager.getInstance().getFactory(myId)); |
470 | | - List<IDataProviderDescriptor> kernelDescriptors = DataProviderManager.getInstance().getAvailableProviders(trace); |
471 | | - assertEquals(1, kernelDescriptors.stream().filter(desc -> desc.getId().equals(myId)).count()); |
| 450 | + DataProviderManager.getInstance().removeDataProviderFactory(myId); |
| 451 | + assertNull(DataProviderManager.getInstance().getFactory(myId)); |
| 452 | + assertNull(DataProviderManager.getInstance().getExistingDataProvider(trace, myId, ITimeGraphDataProvider.class)); |
| 453 | + } |
472 | 454 |
|
473 | | - @SuppressWarnings("unchecked") |
474 | | - ITimeGraphDataProvider<?> dp = DataProviderManager.getInstance().getOrCreateDataProvider(trace, myId, ITimeGraphDataProvider.class); |
475 | | - assertNotNull(dp); |
| 455 | + /** |
| 456 | + * Test different data provider add/remove methods |
| 457 | + */ |
| 458 | + @SuppressWarnings("unchecked") |
| 459 | + @Test |
| 460 | + public void testRemoveDataProviderMethods() { |
| 461 | + String myId = "my-id"; |
| 462 | + IDataProviderFactory testFactory = createCustomFactory(myId); |
| 463 | + ITmfTrace trace = fKernelTrace; |
| 464 | + assertNotNull(trace); |
| 465 | + DataProviderManager.getInstance().addDataProviderFactory(myId, testFactory); |
| 466 | + |
| 467 | + ITimeGraphDataProvider<?> dp = DataProviderManager.getInstance().getOrCreateDataProvider(trace, myId, ITimeGraphDataProvider.class); |
| 468 | + assertNotNull(dp); |
| 469 | + |
| 470 | + // test remove by ID |
| 471 | + DataProviderManager.getInstance().removeDataProvider(trace, myId); |
| 472 | + assertNull(DataProviderManager.getInstance().getExistingDataProvider(trace, myId, ITimeGraphDataProvider.class)); |
| 473 | + |
| 474 | + // test remove by dp instance |
| 475 | + dp = DataProviderManager.getInstance().getOrCreateDataProvider(trace, myId, ITimeGraphDataProvider.class); |
| 476 | + assertNotNull(dp); |
476 | 477 |
|
477 | | - DataProviderManager.getInstance().removeDataProviderFactory(myId); |
478 | | - assertNull(DataProviderManager.getInstance().getFactory(myId)); |
479 | | - } |
| 478 | + assertTrue(DataProviderManager.getInstance().removeDataProvider(trace, dp)); |
| 479 | + assertNull(DataProviderManager.getInstance().getExistingDataProvider(trace, myId, ITimeGraphDataProvider.class)); |
| 480 | + DataProviderManager.getInstance().removeDataProviderFactory(myId); |
| 481 | + } |
| 482 | + |
| 483 | + private static IDataProviderFactory createCustomFactory(@NonNull String myId) { |
| 484 | + return new IDataProviderFactory() { |
| 485 | + @SuppressWarnings("restriction") |
| 486 | + @Override |
| 487 | + public @Nullable ITmfTreeDataProvider<? extends ITmfTreeDataModel> createProvider(@NonNull ITmfTrace trace) { |
| 488 | + |
| 489 | + KernelAnalysisModule module = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelAnalysisModule.class, KernelAnalysisModule.ID); |
| 490 | + if (module != null) { |
| 491 | + return new ThreadStatusDataProvider(trace, module) { |
| 492 | + @Override |
| 493 | + public @NonNull String getId() { |
| 494 | + return myId; |
| 495 | + } |
| 496 | + }; |
| 497 | + } |
| 498 | + return null; |
| 499 | + } |
| 500 | + |
| 501 | + @SuppressWarnings("null") |
| 502 | + @Override |
| 503 | + public @NonNull Collection<IDataProviderDescriptor> getDescriptors(@NonNull ITmfTrace trace) { |
| 504 | + return List.of(new DataProviderDescriptor.Builder() |
| 505 | + .setId(myId) |
| 506 | + .setName(Objects.requireNonNull("")) |
| 507 | + .setDescription(Objects.requireNonNull("")) |
| 508 | + .setProviderType(ProviderType.TIME_GRAPH) |
| 509 | + .build()); |
| 510 | + } |
| 511 | + }; |
| 512 | + } |
480 | 513 | } |
0 commit comments