public void document_is_not_stored_in_cache_if_loaded_from_cache()
        {
            var document     = "# First Program";
            var scheduler    = new TestSchedulerService();
            var stateService = new StateServiceMock();

            stateService
            .When(x => x.GetAsync <string>(It.IsAny <string>()))
            .Return(Observable.Return(document));

            stateService
            .When(x => x.SetAsync <string>(It.IsAny <string>(), It.IsAny <string>()))
            .Return(Observable.Return(Unit.Default));

            var sut = new ExerciseProgramsViewModelBuilder()
                      .WithSchedulerService(scheduler)
                      .WithStateService(stateService)
                      .Build();

            scheduler.AdvanceMinimal();
            Assert.Equal(ExerciseProgramsViewModelStatus.LoadedFromCache, sut.Status);

            stateService
            .Verify(x => x.SetAsync <string>("ExerciseProgramsDocument", document))
            .WasNotCalled();
        }
Esempio n. 2
0
        public ExerciseProgramsViewModelBuilder WithCachedDocument(string cachedDocument)
        {
            var stateService = new StateServiceMock(MockBehavior.Loose);

            stateService
            .When(x => x.Get <string>(It.IsAny <string>()))
            .Return(Observable.Return(cachedDocument));

            stateService
            .When(x => x.Set <string>(It.IsAny <string>(), It.IsAny <string>()))
            .Return(Observables.Unit);

            return(this.WithStateService(stateService));
        }
        public void programs_is_populated_from_cloud_if_cache_errors_and_cloud_is_populated()
        {
            var document     = "# First Program";
            var stateService = new StateServiceMock();

            stateService
            .When(x => x.Get <string>(It.IsAny <string>()))
            .Return(Observable.Throw <string>(new InvalidOperationException()));

            stateService
            .When(x => x.Set <string>(It.IsAny <string>(), It.IsAny <string>()))
            .Return(Observables.Unit);

            var sut = new ExerciseProgramsViewModelBuilder()
                      .WithCloudDocument(document)
                      .WithStateService(stateService)
                      .Build();

            Assert.NotNull(sut.Programs);
            Assert.Equal(1, sut.Programs.Count);
        }
        public void document_is_stored_in_cache_if_successfully_loaded_from_cloud()
        {
            var document     = "# First Program";
            var stateService = new StateServiceMock();

            stateService
            .When(x => x.Get <string>(It.IsAny <string>()))
            .Return(Observable.Return <string>(null));
            stateService
            .When(x => x.Set <string>(It.IsAny <string>(), It.IsAny <string>()))
            .Return(Observables.Unit);
            var sut = new ExerciseProgramsViewModelBuilder()
                      .WithCloudDocument(document)
                      .WithStateService(stateService)
                      .Build();

            Assert.Equal(ExerciseProgramsViewModelStatus.LoadedFromService, sut.Status);

            stateService
            .Verify(x => x.Set <string>("ExerciseProgramsDocument", document))
            .WasCalledExactlyOnce();
        }