public CachingStateVm(CachingState cachingState) { _cachingState = cachingState; var progress = cachingState.Progress; _finalSize = progress.Select(x => x.Total).ToProperty(this, x => x.FinalSize); _cachedSize = progress.Select(x => x.Current).ToProperty(this, x => x.CachedSize); _isFullyCached = progress.Select(x => x.Current != 0UL && x.Current == x.Total).ToProperty(this, x => x.IsFullyCached, false); _isInitialized = this.WhenAny(x => x.FinalSize, ch => ch.Value > 0).ToProperty(this, x => x.IsInitialized, false); }
//[Fact] public void Test_Caching_State_Initialization() { var downloaderMock = new Mock<IBackgroundDownloader>(); downloaderMock.Setup(x => x.Load(It.IsAny<string>(), It.IsAny<IProgress<ProgressValue>>(), It.IsAny<CancellationToken>())) .Returns(Task.FromResult(new Uri("http://google.com"))); var storageMock = new Mock<IPodcastsStorage>(); storageMock.Setup(x => x.MoveFromTransferTempStorage(It.IsAny<Uri>(), It.IsAny<IPodcastItem>())) .Returns(Task.FromResult(new Uri("http://google.com"))); var podcastMock = new Mock<IPodcastItem>(); podcastMock.Setup(x => x.Title).Returns("title"); podcastMock.Setup(x => x.PodcastUri).Returns(new Uri("http://google.com")); var state = new CachingState(podcastMock.Object, downloaderMock.Object, storageMock.Object); state.Init(); //Assert.NotNull(state.Progress); //Assert.True(state.IsFullyCached); //Assert.Equal(0d, state.FinalSize); }
public FileModel(PodcastId id, [CanBeNull]CacheInfo cacheInfo) { Id = id; State = new CachingState(); UpdateCachingState(cacheInfo); }