public async Task OnNextAsync_WhenInSummaryMode_ShouldReturnAggregatedGrainsAndSummaryViewShouldbeTrue() { var runtime = TestHelpers.MockRuntime(); var stream = NSubstitute.Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); var orniscientLinkMap = Substitute.For <IOrniscientLinkMap>(); orniscientLinkMap.GetLinkFromType(Arg.Any <string>()).Returns(new OrniscientGrain()); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, orniscientLinkMap); await grain.OnActivateAsync(); await grain.SetSummaryViewLimit(1); await grain.OnNextAsync(new DiffModel() { NewGrains = new List <UpdateModel>() { new UpdateModel() { GrainId = "1", Type = "TestType1" }, new UpdateModel() { GrainId = "2", Type = "TestType1" } } }); await stream.Received().OnNextAsync(Arg.Is <DiffModel>(p => p.NewGrains.First().Count == 2 && p.SummaryView == true)); }
public async Task GetAll_WhenInSummaryView_ShouldReturnDistinctTypesWithCounts() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetAll(Arg.Any <string>()).Returns(GetAllMock()); dashboardCollectedGrain.GetAll().Returns(GetAllMock()); var runtime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); runtime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); var orniscientLinkMap = Substitute.For <IOrniscientLinkMap>(); orniscientLinkMap.GetLinkFromType(Arg.Any <string>()).Returns(new OrniscientGrain()); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, orniscientLinkMap); await grain.OnActivateAsync(); await grain.SetSummaryViewLimit(1); var result = await grain.GetAll(null); Assert.Equal(2, result.NewGrains.Count); }
public async Task GetAll_FilterWithTypeFilterOnly_ShouldReturnGrainsWithThatTypeOnly() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetAll().Returns(GetAllMock()); var runtime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); runtime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); var result = await grain.GetAll(new AppliedFilter() { TypeFilters = new List <AppliedTypeFilter>() { new AppliedTypeFilter() { TypeName = "GrainType1" } } }); Assert.NotEmpty(result.NewGrains); Assert.Equal(true, result.NewGrains.TrueForAll(g => g.Type.Contains("GrainType1"))); }
public async Task GetGrainTypes_ShouldReturnGrainTypesFromDashboardCollectorGrain() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetGrainTypes().Returns(new GrainType[] { new GrainType("TestType") }); var runtime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); runtime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); var result = await grain.GetGrainTypes(); Assert.NotEmpty(result); }
public async Task GetAll_NoFilter_ShouldReturnAllGrainsFromDashboardCollector() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetAll().Returns(GetAllMock()); var grainRuntime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); grainRuntime.MockStream(stream); grainRuntime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), grainRuntime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); var result = await grain.GetAll(null); Assert.NotEmpty(result.NewGrains); }
public async Task OnNextAsync_ShouldAddItemsToTheCurrentStatsForTheGrain() { var runtime = TestHelpers.MockRuntime(); var stream = NSubstitute.Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); await grain.OnNextAsync(new DiffModel() { NewGrains = new List <UpdateModel>() { new UpdateModel() { GrainId = "1", Type = "TestType1" } } }); Assert.NotEmpty(grain.CurrentStats); }
public async Task OnNextAsync_ShouldAddItemsToCurrentStatsThenPassToDashboardInstanceStream() { var runtime = TestHelpers.MockRuntime(); var stream = NSubstitute.Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); await grain.OnNextAsync(new DiffModel() { NewGrains = new List <UpdateModel>() { new UpdateModel() { GrainId = "1", Type = "TestType1" } } }); await stream.Received().OnNextAsync(Arg.Is <DiffModel>(p => p.NewGrains.First().GrainId == "1")); }
public async Task GetAll_FilterWithSiloPassed_ShouldFilterOutThoseSilos() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetAll().Returns(GetAllMock()); var runtime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); runtime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); var result = await grain.GetAll(new AppliedFilter() { SelectedSilos = new[] { "Silo1" } }); Assert.NotEmpty(result.NewGrains); Assert.Equal(true, result.NewGrains.TrueForAll(g => g.Silo.Contains("Silo1"))); }
public async Task GetAll_FilterWithFilterTypeAndSelectedValues_ShouldReturnGrainsWithThoseTypesAndValues() { var dashboardCollectedGrain = Substitute.For <IDashboardCollectorGrain>(); dashboardCollectedGrain.GetAll().Returns(GetAllMock()); //Mock the filterGrain var filterGrain = Substitute.For <IFilterGrain>(); filterGrain.GetFilters(Arg.Any <string[]>()).Returns(new List <TypeFilter>() { new TypeFilter() { TypeName = "GrainType1", Filters = new List <FilterRow>() { new FilterRow() { FilterName = "Filter1", Value = "GrainId1Filter", GrainId = "1" }, new FilterRow() { FilterName = "Filter1", Value = "GrainId3Filter", GrainId = "3" } } } }); var runtime = TestHelpers.MockRuntime(); var stream = Substitute.For <IAsyncStream <DiffModel> >(); runtime.MockStream(stream); runtime.GrainFactory.GetGrain <IDashboardCollectorGrain>(Guid.Empty).Returns(dashboardCollectedGrain); runtime.GrainFactory.GetGrain <IFilterGrain>(Guid.Empty).Returns(filterGrain); var grain = new DashboardInstanceGrain(Substitute.For <IGrainIdentity>(), runtime, Substitute.For <IOrniscientLinkMap>()); await grain.OnActivateAsync(); var result = await grain.GetAll(new AppliedFilter() { TypeFilters = new List <AppliedTypeFilter>() { new AppliedTypeFilter() { TypeName = "GrainType1", SelectedValues = new Dictionary <string, IEnumerable <string> > { { "Filter1", new[] { "GrainId1Filter" } } } } } }); Assert.NotEmpty(result.NewGrains); Assert.Equal(true, result.NewGrains.TrueForAll(g => g.GrainId == "1")); }