Example usage for org.springframework.data.gemfire.snapshot SnapshotServiceFactoryBean setExports

List of usage examples for org.springframework.data.gemfire.snapshot SnapshotServiceFactoryBean setExports

Introduction

In this page you can find the example usage for org.springframework.data.gemfire.snapshot SnapshotServiceFactoryBean setExports.

Prototype

public void setExports(SnapshotMetadata<K, V>[] exports) 

Source Link

Document

Sets the meta-data (location, filter and format) used to create a snapshot from the Cache or Region data.

Usage

From source file:org.springframework.data.gemfire.snapshot.SnapshotServiceFactoryBeanTest.java

@Test
public void destroyPerformsExportWithConfiguredExports() throws Exception {
    SnapshotMetadata expectedSnapshotMetadata = newSnapshotMetadata();

    final SnapshotServiceAdapter mockSnapshotService = mock(SnapshotServiceAdapter.class,
            "MockSnapshotServiceAdapter");

    SnapshotServiceFactoryBean factoryBean = new SnapshotServiceFactoryBean() {
        @Override//from  www . j  av a2 s  .  c  om
        public SnapshotServiceAdapter getObject() throws Exception {
            return mockSnapshotService;
        }
    };

    factoryBean.setExports(toArray(expectedSnapshotMetadata));
    factoryBean.destroy();

    assertThat(factoryBean.getExports()[0], is(equalTo(expectedSnapshotMetadata)));

    verify(mockSnapshotService, times(1)).doExport(eq(expectedSnapshotMetadata));
}

From source file:org.springframework.data.gemfire.snapshot.SnapshotServiceFactoryBeanTest.java

@Test
public void onApplicationEventWhenMatchUsingEventSnapshotMetadataPerformsExport() throws Exception {
    Region mockRegion = mock(Region.class, "MockRegion");

    SnapshotApplicationEvent mockSnapshotEvent = mock(ExportSnapshotApplicationEvent.class,
            "MockExportSnapshotApplicationEvent");

    SnapshotMetadata eventSnapshotMetadata = newSnapshotMetadata(snapshotDat);

    final SnapshotServiceAdapter mockSnapshotService = mock(SnapshotServiceAdapter.class,
            "MockSnapshotServiceAdapter");

    when(mockSnapshotEvent.isCacheSnapshotEvent()).thenReturn(false);
    when(mockSnapshotEvent.matches(eq(mockRegion))).thenReturn(true);
    when(mockSnapshotEvent.getSnapshotMetadata()).thenReturn(toArray(eventSnapshotMetadata));

    SnapshotServiceFactoryBean factoryBean = new SnapshotServiceFactoryBean() {
        @Override/*from w w  w . j  av  a2s. c o  m*/
        public SnapshotServiceAdapter getObject() throws Exception {
            return mockSnapshotService;
        }
    };

    factoryBean.setExports(toArray(newSnapshotMetadata()));
    factoryBean.setRegion(mockRegion);

    assertThat(factoryBean.getExports()[0], is(not(sameInstance(eventSnapshotMetadata))));
    assertThat(factoryBean.getRegion(), is(sameInstance(mockRegion)));

    factoryBean.onApplicationEvent(mockSnapshotEvent);

    verify(mockSnapshotEvent, times(1)).isCacheSnapshotEvent();
    verify(mockSnapshotEvent, times(1)).matches(eq(mockRegion));
    verify(mockSnapshotEvent, times(1)).getSnapshotMetadata();
    verify(mockSnapshotService, times(1)).doExport(eq(eventSnapshotMetadata));
}

From source file:org.springframework.data.gemfire.snapshot.SnapshotServiceFactoryBeanTest.java

@Test
public void onApplicationEventWhenNoMatchDoesNotPerformExport() throws Exception {
    SnapshotApplicationEvent mockSnapshotEvent = mock(ExportSnapshotApplicationEvent.class,
            "MockExportSnapshotApplicationEvent");

    when(mockSnapshotEvent.isCacheSnapshotEvent()).thenReturn(false);
    when(mockSnapshotEvent.matches(any(Region.class))).thenReturn(false);
    when(mockSnapshotEvent.getSnapshotMetadata()).thenReturn(null);

    final SnapshotServiceAdapter mockSnapshotService = mock(SnapshotServiceAdapter.class,
            "MockSnapshotServiceAdapter");

    SnapshotServiceFactoryBean factoryBean = new SnapshotServiceFactoryBean() {
        @Override/*from  w ww.j  av a  2  s.co m*/
        public SnapshotServiceAdapter getObject() throws Exception {
            return mockSnapshotService;
        }
    };

    factoryBean.setExports(toArray(newSnapshotMetadata()));

    assertThat(factoryBean.getExports()[0], isA(SnapshotMetadata.class));
    assertThat(factoryBean.getRegion(), is(nullValue()));

    factoryBean.onApplicationEvent(mockSnapshotEvent);

    verify(mockSnapshotEvent, times(1)).isCacheSnapshotEvent();
    verify(mockSnapshotEvent, times(1)).matches(isNull(Region.class));
    verify(mockSnapshotEvent, never()).getSnapshotMetadata();
    verify(mockSnapshotService, never()).doExport(any(SnapshotMetadata.class));
}

From source file:org.springframework.data.gemfire.snapshot.SnapshotServiceFactoryBeanTest.java

@Test
public void exportCacheSnapshotOnDestroy() throws Exception {
    Cache mockCache = mock(Cache.class, "MockCache");

    CacheSnapshotService mockCacheSnapshotService = mock(CacheSnapshotService.class,
            "MockCacheSnapshotService");

    SnapshotFilter mockSnapshotFilterOne = mock(SnapshotFilter.class, "MockSnapshotFilterOne");
    SnapshotFilter mockSnapshotFilterTwo = mock(SnapshotFilter.class, "MockSnapshotFilterTwo");

    SnapshotOptions mockSnapshotOptionsOne = mock(SnapshotOptions.class, "MockSnapshotOptionsOne");
    SnapshotOptions mockSnapshotOptionsTwo = mock(SnapshotOptions.class, "MockSnapshotOptionsTwo");

    when(mockCache.getSnapshotService()).thenReturn(mockCacheSnapshotService);
    when(mockCacheSnapshotService.createOptions()).thenReturn(mockSnapshotOptionsOne)
            .thenReturn(mockSnapshotOptionsTwo);
    when(mockSnapshotOptionsOne.setFilter(eq(mockSnapshotFilterOne))).thenReturn(mockSnapshotOptionsOne);
    when(mockSnapshotOptionsTwo.setFilter(eq(mockSnapshotFilterTwo))).thenReturn(mockSnapshotOptionsTwo);

    SnapshotMetadata[] expectedExports = toArray(newSnapshotMetadata(mockSnapshotFilterOne),
            newSnapshotMetadata(mockSnapshotFilterTwo));

    SnapshotServiceFactoryBean factoryBean = new SnapshotServiceFactoryBean();

    factoryBean.setCache(mockCache);//  w  w w  .j  av  a 2 s.  c o  m
    factoryBean.setExports(expectedExports);
    factoryBean.setImports(null);
    factoryBean.setRegion(null);
    factoryBean.afterPropertiesSet();
    factoryBean.destroy();

    assertThat(factoryBean.getObject(), is(instanceOf(CacheSnapshotServiceAdapter.class)));

    verify(mockCache, times(1)).getSnapshotService();
    verify(mockCacheSnapshotService, times(2)).createOptions();
    verify(mockCacheSnapshotService, times(1)).save(eq(expectedExports[0].getLocation()),
            eq(expectedExports[0].getFormat()), eq(mockSnapshotOptionsOne));
    verify(mockCacheSnapshotService, times(1)).save(eq(expectedExports[1].getLocation()),
            eq(expectedExports[1].getFormat()), eq(mockSnapshotOptionsTwo));
    verify(mockSnapshotOptionsOne, times(1)).setFilter(eq(mockSnapshotFilterOne));
    verify(mockSnapshotOptionsTwo, times(1)).setFilter(eq(mockSnapshotFilterTwo));
}

From source file:org.springframework.data.gemfire.snapshot.SnapshotServiceFactoryBeanTest.java

@Test
public void exportRegionSnapshotOnDestroy() throws Exception {
    Cache mockCache = mock(Cache.class, "MockCache");

    Region mockRegion = mock(Region.class, "MockRegion");

    RegionSnapshotService mockRegionSnapshotService = mock(RegionSnapshotService.class,
            "MockRegionSnapshotService");

    SnapshotFilter mockSnapshotFilterOne = mock(SnapshotFilter.class, "MockSnapshotFilterOne");
    SnapshotFilter mockSnapshotFilterTwo = mock(SnapshotFilter.class, "MockSnapshotFilterTwo");

    SnapshotOptions mockSnapshotOptionsOne = mock(SnapshotOptions.class, "MockSnapshotOptionsOne");
    SnapshotOptions mockSnapshotOptionsTwo = mock(SnapshotOptions.class, "MockSnapshotOptionsTwo");

    when(mockCache.getSnapshotService())
            .thenThrow(new UnsupportedOperationException("operation not supported"));
    when(mockRegion.getSnapshotService()).thenReturn(mockRegionSnapshotService);
    when(mockRegionSnapshotService.createOptions()).thenReturn(mockSnapshotOptionsOne)
            .thenReturn(mockSnapshotOptionsTwo);
    when(mockSnapshotOptionsOne.setFilter(eq(mockSnapshotFilterOne))).thenReturn(mockSnapshotOptionsOne);
    when(mockSnapshotOptionsTwo.setFilter(eq(mockSnapshotFilterTwo))).thenReturn(mockSnapshotOptionsTwo);

    SnapshotMetadata[] expectedExports = toArray(newSnapshotMetadata(mockSnapshotFilterOne),
            newSnapshotMetadata(mockSnapshotFilterTwo));

    SnapshotServiceFactoryBean factoryBean = new SnapshotServiceFactoryBean();

    factoryBean.setCache(mockCache);//from ww w.j  a v a2s.  co  m
    factoryBean.setExports(expectedExports);
    factoryBean.setImports(null);
    factoryBean.setRegion(mockRegion);
    factoryBean.afterPropertiesSet();
    factoryBean.destroy();

    assertThat(factoryBean.getObject(), is(instanceOf(RegionSnapshotServiceAdapter.class)));

    verify(mockCache, never()).getSnapshotService();
    verify(mockRegion, times(1)).getSnapshotService();
    verify(mockRegionSnapshotService, times(2)).createOptions();
    verify(mockRegionSnapshotService, times(1)).save(eq(expectedExports[0].getLocation()),
            eq(expectedExports[0].getFormat()), eq(mockSnapshotOptionsOne));
    verify(mockRegionSnapshotService, times(1)).save(eq(expectedExports[1].getLocation()),
            eq(expectedExports[1].getFormat()), eq(mockSnapshotOptionsTwo));
    verify(mockSnapshotOptionsOne, times(1)).setFilter(eq(mockSnapshotFilterOne));
    verify(mockSnapshotOptionsTwo, times(1)).setFilter(eq(mockSnapshotFilterTwo));
}