/// /// Copyright © 2003-2008 JetBrains s.r.o. /// You may distribute under the terms of the GNU General Public License, as published by the Free Software Foundation, version 2 (see License.txt in the repository root folder). /// // This file was generated by C# Refactory. // To modify this template, go to Tools/Options/C# Refactory/Code using System; using JetBrains.Omea.Database; using NUnit.Framework; using System.IO; namespace DBUtil { [TestFixture] public class CheckBLOBTypeTest { IDatabase m_database; ITable m_testTable; [SetUp] public void SetUp() { try { Stream stream = File.Open( "resume.txt", FileMode.OpenOrCreate, FileAccess.Write ); BinaryWriter text = new BinaryWriter( stream ); text.Write("Resume of developer"); text.Close(); stream.Close(); stream = File.Open( "resumeTester.txt", FileMode.OpenOrCreate, FileAccess.Write ); text = new BinaryWriter( stream ); text.Write("Resume of tester"); text.Close(); stream.Close(); DBTest.RemoveDBFiles(); DBStructure database = new DBStructure( "", "MyPal" ); TableStructure tblPeople = database.CreateTable( "People" ); tblPeople.CreateColumn( "Id", ColumnType.Integer, true ); tblPeople.CreateColumn( "Name", ColumnType.String, true ); tblPeople.CreateColumn( "Resume", ColumnType.BLOB, false ); database.SaveStructure(); m_database = database.OpenDatabase( ); m_testTable = m_database.GetTable("People"); } catch ( Exception exc ) { Assert.Fail( exc.Message ); } } [TearDown] public void TearDown() { try { m_database.Shutdown(); DBTest.RemoveDBFiles(); File.Delete( "resume.txt" ); File.Delete( "resumeTester.txt" ); string[] files = System.IO.Directory.GetFiles(".", "*.blob"); foreach ( string fileName in files ) { System.IO.File.Delete( fileName ); } } catch ( Exception exc ) { Assert.Fail( exc.Message ); } } [Test] public void BLOBTypeTest( ) { Stream stream = File.Open( "resume.txt", FileMode.Open, FileAccess.Read ); IRecord record = m_testTable.NewRecord(); record.SetValue( 1, "Sergey" ); record.SetValue( 2, m_testTable.CreateBLOB( stream ) ); record.Commit(); ICountedResultSet resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); IRecord person = resultSet[0]; Stream resumeStream = person.GetBLOBValue( 2 ).Stream; resumeStream.Seek( 0, SeekOrigin.Begin ); BinaryReader reader = new BinaryReader( resumeStream ); string strResume = reader.ReadString(); resumeStream.Close(); Assert.AreEqual( "Resume of developer", strResume ); resultSet.Dispose(); resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); person = null; person = resultSet[0]; resumeStream = person.GetBLOBValue( 2 ).Stream; resumeStream.Seek( 0, SeekOrigin.Begin ); reader = new BinaryReader( resumeStream ); strResume = reader.ReadString(); resumeStream.Close(); Assert.AreEqual( "Resume of developer", strResume ); resultSet.Dispose(); } [Test] public void BLOBDeleteTest( ) { Stream stream = File.Open( "resume.txt", FileMode.Open, FileAccess.Read ); IRecord record = m_testTable.NewRecord(); record.SetValue( 1, "Sergey" ); record.SetValue( 2, m_testTable.CreateBLOB( stream ) ); record.Commit(); ICountedResultSet resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); using( resultSet ) { IRecord person = resultSet[0]; person.Delete(); } } [Test] public void BLOBUpdateTest( ) { Stream stream = File.Open( "resumeTester.txt", FileMode.Open, FileAccess.Read ); IRecord record = m_testTable.NewRecord(); record.SetValue( 1, "Sergey" ); record.SetValue( 2, m_testTable.CreateBLOB( stream ) ); record.Commit(); ICountedResultSet resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); IRecord person = resultSet[0]; Stream resumeStream = person.GetBLOBValue( 2 ).Stream; resumeStream.Seek( 0, SeekOrigin.Begin ); BinaryReader reader = new BinaryReader( resumeStream ); string strResume = reader.ReadString(); resumeStream.Close(); Assert.AreEqual( "Resume of tester", strResume ); resultSet.Dispose(); resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); person = resultSet[0]; stream = File.Open( "resume.txt", FileMode.Open, FileAccess.Read ); person.SetValue( 2, m_testTable.CreateBLOB( stream ) ); person.Commit(); resultSet.Dispose(); resultSet = m_testTable.CreateModifiableResultSet( 1, "Sergey" ); person = resultSet[0]; resumeStream = person.GetBLOBValue( 2 ).Stream; resumeStream.Seek( 0, SeekOrigin.Begin ); reader = new BinaryReader( resumeStream ); strResume = reader.ReadString(); resumeStream.Close(); resultSet.Dispose(); Assert.AreEqual( "Resume of developer", strResume ); } } }