public void ShouldSerializeSuccessiveResultColumns() { // Arrange var dataSet = new DataSet(); dataSet.Tables.Add(new DataTable()); dataSet.Tables.Add(new DataTable()); dataSet.Tables[0].Columns.Add("foo", typeof(int)); dataSet.Tables[0].Rows.Add(1); var columnName = "bar"; dataSet.Tables[1].Columns.Add(columnName, typeof(int)); dataSet.Tables[1].Rows.Add(1); var dataReader = dataSet.CreateDataReader(); var stream = new ProtoDataStream(dataReader); // Act var reader = ProtoReader.Create(this.CopyStream(stream), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilResultEnd(); readerContext.ReadUntilColumnName(); Assert.Equal(columnName, reader.ReadString()); }
public void ShouldSerializeExpressionColumn() { // Arrange var columnName = "foo"; var dataTable = new DataTable(); dataTable.Columns.Add(columnName, typeof(int)); dataTable.Rows.Add(1); var dataReader = dataTable.CreateDataReader(); dataReader.GetSchemaTable().Rows[0]["Expression"] = true; var options = new ProtoDataWriterOptions() { IncludeComputedColumns = true }; // Act var reader = new ProtoReader(this.Serialize(dataReader, options), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnName(); Assert.Equal(columnName, reader.ReadString()); }
public void ShouldNotSerializeExpressionColumn() { var isRunningOnMono = Type.GetType("Mono.Runtime") != null; if (!isRunningOnMono) { // Arrange var columnName = "foo"; var dataTable = new DataTable(); dataTable.Columns.Add(columnName, typeof(int)); dataTable.Rows.Add(1); var dataReader = dataTable.CreateDataReader(); dataReader.GetSchemaTable().Rows[0]["Expression"] = true; var options = new ProtoDataWriterOptions() { IncludeComputedColumns = false }; // Act var reader = new ProtoReader(this.Serialize(dataReader, options), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadExpectedFieldHeader(ResultFieldHeader); readerContext.StartSubItem(); Assert.Equal(RecordFieldHeader, reader.ReadFieldHeader()); } }
public void ShouldSerializeMultipleResults() { // Arrange var dataSet = new DataSet(); dataSet.Tables.Add(new DataTable()); dataSet.Tables.Add(new DataTable()); dataSet.Tables[0].Columns.Add("foo", typeof(int)); dataSet.Tables[0].Rows.Add(1); dataSet.Tables[1].Columns.Add("bar", typeof(int)); dataSet.Tables[1].Rows.Add(1); var dataReader = dataSet.CreateDataReader(); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilResultEnd(); Assert.Equal(ResultFieldHeader, reader.ReadFieldHeader()); }
public void ShouldSerializeGuidColumnType() { // Arrange var dataReader = this.CreateDataReader(Guid.NewGuid()); // Act var reader = ProtoReader.Create(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(10, reader.ReadInt32()); }
public void ShouldSerializeDecimalColumnType() { // Arrange var dataReader = this.CreateDataReader(42m); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(12, reader.ReadInt32()); }
public void ShouldSerializeTimeSpanColumnType() { // Arrange var dataReader = this.CreateDataReader(TimeSpan.FromTicks(1)); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(15, reader.ReadInt32()); }
public void ShouldSerializeDateTimeColumnType() { // Arrange var dataReader = this.CreateDataReader(new DateTime(1969, 10, 29, 22, 30, 0)); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(2, reader.ReadInt32()); }
public void ShouldSerializeByteArrayColumnType() { // Arrange var dataReader = this.CreateDataReader(new[] { (byte)42, (byte)42 }); // Act var reader = ProtoReader.Create(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(13, reader.ReadInt32()); }
public void ShouldSerializeCharArrayColumnType() { // Arrange var dataReader = this.CreateDataReader(new[] { 'f', 'o', 'o' }); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnType(); Assert.Equal(14, reader.ReadInt32()); }
public void ShouldSerializeDateTimeValue() { // Arrange var value = new DateTime(1969, 10, 29, 22, 30, 0); var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, BclHelpers.ReadDateTime(reader)); }
public void ShouldSerializeByteArrayValue() { // Arrange var value = new[] { (byte)42, (byte)42 }; var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, ProtoReader.AppendBytes(null, reader)); }
public void ShouldSerializeDecimalValue() { // Arrange var value = 42m; var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, BclHelpers.ReadDecimal(reader)); }
public void ShouldSerializeCharValue() { // Arrange var value = ';'; var dataReader = this.CreateDataReader(value); // Act var reader = ProtoReader.Create(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, (char)reader.ReadInt16()); }
public void ShouldSerializeCharArrayValue() { // Arrange var value = new[] { 'f', 'o', 'o' }; var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, reader.ReadString().ToCharArray()); }
public void ShouldSerializeInt32Value() { // Arrange var value = 42; var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, reader.ReadInt32()); }
public void ShouldSerializeGuidValue() { // Arrange var value = Guid.NewGuid(); var dataReader = this.CreateDataReader(value); // Act var reader = ProtoReader.Create(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, BclHelpers.ReadGuid(reader)); }
public void ShouldSerializeTimeSpanValue() { // Arrange var value = TimeSpan.FromTicks(1); var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, BclHelpers.ReadTimeSpan(reader)); }
public void ShouldNotSerializeIfValueIsNull() { // Arrange string value = null; var dataReader = this.CreateDataReader(value); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilField(); readerContext.ReadExpectedFieldHeader(3); Assert.Equal(0, reader.ReadFieldHeader()); }
public void ShouldSerializeField() { // Arrange var value = "foo"; var dataReader = this.CreateDataReader(value); var stream = new ProtoDataStream(dataReader); // Act var reader = ProtoReader.Create(this.CopyStream(stream), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilFieldValue(); Assert.Equal(value, reader.ReadString()); }
public void ShouldSerializeColumnName() { // Arrange var columnName = "foo"; var dataTable = new DataTable(); dataTable.Columns.Add(columnName, typeof(int)); dataTable.Rows.Add(1); var dataReader = dataTable.CreateDataReader(); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilColumnName(); Assert.Equal(columnName, reader.ReadString()); }
public void ShouldNotSerializeIfValueIsEmptyArray() { // Arrange var value = new char[0]; var dataReader = this.CreateDataReader(value); var options = new ProtoDataWriterOptions() { SerializeEmptyArraysAsNull = true }; // Act var reader = new ProtoReader(this.Serialize(dataReader, options), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilField(); readerContext.ReadExpectedFieldHeader(3); Assert.Equal(0, reader.ReadFieldHeader()); }
public void ShouldSerializeEmptyCharArrayAsNull() { // Arrange var dataReader = this.CreateDataReader(new char[0]); var options = new ProtoDataWriterOptions() { SerializeEmptyArraysAsNull = true }; // Act var reader = new ProtoReader(this.Serialize(dataReader, options), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilField(); readerContext.ReadExpectedFieldHeader(3); readerContext.StartSubItem(); Assert.Equal(0, reader.ReadFieldHeader()); }
public void ShouldNotSerializeIfValueIsDBNull() { // Arrange var value = DBNull.Value; var dataTable = new DataTable(); dataTable.Columns.Add("foo", typeof(string)); dataTable.Rows.Add(value); var dataReader = dataTable.CreateDataReader(); // Act var reader = new ProtoReader(this.Serialize(dataReader), null, null); // Assert var readerContext = new ProtoReaderContext(reader); readerContext.ReadUntilField(); readerContext.ReadExpectedFieldHeader(3); Assert.Equal(0, reader.ReadFieldHeader()); }