private void RegisterFiles(PackageCacherImpl cacher, params string[] keys)
 {
     foreach (var key in keys)
     {
         cacher.RegisterDownloaded(key,0);
     }
 }
        public void SubscribersTest()
        {
            //Scenario:
            //reserve package name
            //try to get package by first subscriber
            //try to get package by second subscriber
            //register downloaded package

            //the first subscriber should get notification
            //the second subscriber should get notification

            //the third subscriber appears and get package local address
            var reservationKey = "ReservationKey";

            var cacher = new PackageCacherImpl(clearInterval, lifeTime, tempDir);

            var address = cacher.ReserveAddress(reservationKey);

            var firstSubscriberGotPackage = false;
            cacher.Get(reservationKey, (response) => { firstSubscriberGotPackage = true; });

            var secondSubscriberGotPackage = false;
            cacher.Get(reservationKey, (response) => { secondSubscriberGotPackage = true; });

            cacher.RegisterDownloaded(reservationKey, 0);

            var thirdSubscriberGotPackage = false;
            cacher.Get(reservationKey, (response) => { thirdSubscriberGotPackage = true; });

            Assert.IsTrue(firstSubscriberGotPackage);

            Assert.IsTrue(secondSubscriberGotPackage);

            Assert.IsTrue(thirdSubscriberGotPackage);
        }