public void Repository_Null_Is_Stored_As_Null() { // Demonstrates that our repository stores null and returns null ISource <byte[], byte[]> stateDB = new NoDeleteSource <byte[], byte[]>(new MemoryDictionarySource()); StateRepositoryRoot repository = new StateRepositoryRoot(stateDB); repository.CreateAccount(testAddress); repository.SetStorageValue(testAddress, dog, null); Assert.Null(repository.GetStorageValue(testAddress, dog)); repository.Commit(); // We have pushed null to the kv store. Should come back as null StateRepositoryRoot repository2 = new StateRepositoryRoot(stateDB, repository.Root); Assert.Null(repository2.GetStorageValue(testAddress, dog)); }
public void Repository_Bytes0VsNull() { // Demonstrates that our repository treats byte[0] and null as the same. ISource <byte[], byte[]> stateDB = new NoDeleteSource <byte[], byte[]>(new MemoryDictionarySource()); StateRepositoryRoot repository = new StateRepositoryRoot(stateDB); repository.CreateAccount(testAddress); repository.SetStorageValue(testAddress, dog, new byte[0]); Assert.Equal(new byte[0], repository.GetStorageValue(testAddress, dog)); repository.Commit(); // We have pushed byte[0] to the kv store. Should come back as byte[0] right? StateRepositoryRoot repository2 = new StateRepositoryRoot(stateDB, repository.Root); // Nope, comes back null... Assert.Null(repository2.GetStorageValue(testAddress, dog)); }
public void Repository_Empty_String_Is_Stored_As_Null() { // Demonstrates that our repository stores null and returns null ISource <byte[], byte[]> stateDB = new NoDeleteSource <byte[], byte[]>(new MemoryDictionarySource()); StateRepositoryRoot repository = new StateRepositoryRoot(stateDB); repository.CreateAccount(testAddress); var emptyString = Encoding.UTF8.GetBytes(string.Empty); Assert.Empty(empty); // Empty string is empty byte array repository.SetStorageValue(testAddress, dog, emptyString); Assert.Equal(emptyString, repository.GetStorageValue(testAddress, dog)); repository.Commit(); // We have pushed null to the kv store. Should come back as null StateRepositoryRoot repository2 = new StateRepositoryRoot(stateDB, repository.Root); Assert.Null(repository2.GetStorageValue(testAddress, dog)); }