Example #1
0
        public void Valid()
        {
            var  id             = AppInfo.CreateDefaultCryptoProvider().CreateRandom();
            var  version        = new ClientVersion(1);
            var  baseInfo       = PackageSequenceBaseInfo.Default;
            long size           = baseInfo.SegmentLength * 18; // bitmap length: 8bits + 8bits + 2bits
            var  downloadStatus = PackageDownloadInfo.CreateForReadyForDownloadPackage(version, id, new PackageSequenceInfo(baseInfo, size));

            Assert.Equal(3, downloadStatus.Data.SegmentsBitmap.Length);

            // validate
            downloadStatus.ValidateStatusUpdateFromPeer(new PackageStatusDetail()
            {
                SegmentsBitmap = new byte[3] {
                    0x00, 0x00, 0x00
                },
                BytesDownloaded = 0,
                IsFound         = true
            });

            downloadStatus.ValidateStatusUpdateFromPeer(new PackageStatusDetail()
            {
                SegmentsBitmap = new byte[3] {
                    0x00, 0x00, 0b00000011
                },