bigtable/api/SnippetsTest/WriteTest.cs (61 lines of code) (raw):
// Copyright (c) 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
using System;
using System.Linq;
using Xunit;
using Google.Cloud.Bigtable.Admin.V2;
using Google.Cloud.Bigtable.Common.V2;
namespace Writes
{
public class BigtableClientFixture : IDisposable
{
public readonly string projectId =
Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");
public readonly string instanceId =
Environment.GetEnvironmentVariable("TEST_BIGTABLE_INSTANCE");
public readonly string tableId = $"mobile-time-series-{Guid.NewGuid().ToString().Substring(0, 8)}";
private readonly BigtableTableAdminClient _bigtableTableAdminClient;
public BigtableClientFixture()
{
_bigtableTableAdminClient = BigtableTableAdminClient.Create();
Table table = new Table
{
Granularity = Table.Types.TimestampGranularity.Millis
};
table.ColumnFamilies.Add("stats_summary", new ColumnFamily());
CreateTableRequest createTableRequest = new CreateTableRequest
{
ParentAsInstanceName = new InstanceName(projectId, instanceId),
Table = table,
TableId = tableId,
};
_bigtableTableAdminClient.CreateTable(createTableRequest);
}
public void Dispose()
{
_bigtableTableAdminClient.DeleteTable(new Google.Cloud.Bigtable.Common.V2.TableName(projectId, instanceId, tableId));
}
}
public class WriteSnippetsTest : IClassFixture<BigtableClientFixture>
{
private readonly BigtableClientFixture _fixture;
public WriteSnippetsTest(BigtableClientFixture fixture)
{
_fixture = fixture;
}
[Fact]
public void TestWriteSimpleIncrementConditional()
{
Writes.WriteSimpleSample writeSimple = new Writes.WriteSimpleSample();
Assert.Contains("Successfully wrote row", writeSimple.WriteSimple(_fixture.projectId, _fixture.instanceId, _fixture.tableId));
Writes.WriteIncrementSample writeIncrement = new Writes.WriteIncrementSample();
Assert.Contains("Successfully updated row", writeIncrement.WriteIncrement(_fixture.projectId, _fixture.instanceId, _fixture.tableId));
Writes.WriteConditionalSample writeConditional = new Writes.WriteConditionalSample();
Assert.Contains("Successfully updated row's os_name: True", writeConditional.WriteConditional(_fixture.projectId, _fixture.instanceId, _fixture.tableId));
}
[Fact]
public void TestWriteBatch()
{
Writes.WriteBatchSample writeBatch = new Writes.WriteBatchSample();
Assert.Contains("Successfully wrote 2 rows", writeBatch.WriteBatch(_fixture.projectId, _fixture.instanceId, _fixture.tableId));
}
}
}