public void ShouldDetermineIfIsFirstLoad()
        {
            var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false };
            stub.Clear();
            stub.Store.Save();

            stub.IsFirstLoad.ShouldBe(true);
            stub = new Stub(IsolatedStorageType.Application) { AutoSave = false };
            stub.IsFirstLoad.ShouldBe(true);

            stub.Save();
            stub.IsFirstLoad.ShouldBe(false);
        }
        public void ShouldStoreValuesInSerializedForm()
        {
            var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false, StoreAsSerializedString =  true};

            var collection = stub.SiteAddresses;
            collection.Add(new Uri("http://site.com"));
            var xml = collection.ToSerializedXml();

            stub.SiteAddresses = collection;
            stub.Save();

            appSettings.Contains(stub.Id).ShouldBe(true);

            var stub2 = new Stub(IsolatedStorageType.Application) { AutoSave = false, StoreAsSerializedString = true };
            stub2.SiteAddresses.ToSerializedXml().ShouldBe(xml);
        }
        public void ShouldDeserializeValues()
        {
            var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false, StoreAsSerializedString = true };
            var collection = stub.SiteAddresses;
            collection.Add(new Uri("http://site.com/"));
            stub.SiteAddresses = collection;
            stub.Save();

            stub = new Stub(IsolatedStorageType.Application) { AutoSave = false, StoreAsSerializedString = true };
            var readCollection = stub.SiteAddresses;
            readCollection.Count.ShouldBe(1);
            readCollection[0].ToString().ShouldBe("http://site.com/");
        }
 public void ShouldSaveCollectionOfDifferentTypes()
 {
     var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false};
     stub.SiteAddresses.Add(new Uri("http://www.com"));
     stub.TextCollection.Add("Hello");
     stub.Save();
 }
        public void ShouldClearInIsolatedStoreWhenNotSerializing()
        {
            var stub1 = new Stub(IsolatedStorageType.Application, "Stub") { AutoSave = false, MyString = "value" };
            stub1.MyString.ShouldBe("value");
            stub1.Save();

            stub1 = new Stub(IsolatedStorageType.Application, "Stub") { AutoSave = false };
            stub1.MyString.ShouldBe("value");

            stub1.Clear();
            stub1.Save();

            stub1 = new Stub(IsolatedStorageType.Application, "Stub") { AutoSave = false };
            stub1.MyString.ShouldBe(null);
        }
        public void ShouldClearOnlySpecificStubInMemory()
        {
            var stub1 = new Stub(IsolatedStorageType.Application, "Stub") {AutoSave = false, MyString = "value"};
            var stub2 = new Stub(IsolatedStorageType.Application, "Stub/1") { AutoSave = false, MyString = "value" };
            var stub3 = new Stub(IsolatedStorageType.Application, "Stub.MyString") { AutoSave = false, MyString = "value" };

            stub1.Save();
            stub2.Save();
            stub3.Save();

            var store = stub1.Store;
            store.Keys.ShouldContain(stub1.Id);
            store.Keys.ShouldContain(stub2.Id);
            store.Keys.ShouldContain(stub3.Id);

            // ---

            stub1.Store.ShouldBe(stub2.Store);

            stub1.Clear();
            store.Keys.ShouldNotContain(stub1.Id);
            store.Keys.ShouldContain(stub2.Id);
            store.Keys.ShouldContain(stub3.Id);
        }
        public void ShouldFireSavedEvent()
        {
            var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false };

            var count = 0;
            stub.Saved += delegate { count++; };

            stub.Save();
            count.ShouldBe(1);
        }
        public void ShouldStoreValueInIsolatedStorage()
        {
            var stub = new Stub(IsolatedStorageType.Application) { AutoSave = false };
            appSettings.Contains(stub.Id).ShouldBe(false);

            stub.MyString = "Hello";

            appSettings.Contains(stub.Id).ShouldBe(false);
            stub.Save();
            appSettings.Contains(stub.Id).ShouldBe(true);

            var stub2 = new Stub(IsolatedStorageType.Application) { AutoSave = false };
            stub2.MyString.ShouldBe("Hello");
        }