public void InMemoryValuesStore_Create_MoreThanMaxCreated()
        {
            // Arrange
            var valuesStore    = new InMemoryValuesStore();
            var valuesToCreate = 11;

            // Act
            Action action = () => this.CreateMultiple(valuesStore, valuesToCreate);

            // Assert
            ExceptionAssert.ThrowsApiException(action, ApiExceptionError.ValuesStoreFull);
        }
        public void InMemoryValuesStore_Read_ValueDoesntExist()
        {
            // Arrange
            var valuesStore = new InMemoryValuesStore();
            var valueId     = "nonExistentId";

            // Act
            Action action = () => valuesStore.Read(valueId);

            // Assert
            ExceptionAssert.ThrowsApiException(action, ApiExceptionError.ValueDoesntExist);
        }
        public void InMemoryValuesStore_Update_ValueDoesntExist()
        {
            // Arrange
            var valuesStore = new InMemoryValuesStore();
            var value       = new Value()
            {
                Id = "nonExistentId", Data = "data"
            };

            // Act
            Action action = () => valuesStore.Update(value);

            // Assert
            ExceptionAssert.ThrowsApiException(action, ApiExceptionError.ValueDoesntExist);
        }
        public void InMemoryValuesStore_Create_KeyAlreadyExists()
        {
            // Arrange
            var value = new Value()
            {
                Id = "1", Data = "data"
            };
            var valuesStore = new InMemoryValuesStore();

            valuesStore.Create(value);

            // Act
            Action action = () => valuesStore.Create(value);

            // Assert
            ExceptionAssert.ThrowsApiException(action, ApiExceptionError.ValueAlreadyExists);
        }
        public void InMemoryValuesStore_Delete_Success()
        {
            // Arrange
            var value = new Value()
            {
                Id = "1", Data = "data"
            };
            var valuesStore = new InMemoryValuesStore();

            valuesStore.Create(value);

            // Act
            valuesStore.Delete(value.Id);

            // Assert
            Action action = () => valuesStore.Read(value.Id);

            ExceptionAssert.ThrowsApiException(action, ApiExceptionError.ValueDoesntExist);
        }