jediwhale / fitsharp

Functional testing tools for .NET
http://fitsharp.github.io
Other
152 stars 73 forks source link

Insert fails into ORACLE db table with RAW data type #95

Closed emarutian closed 11 years ago

emarutian commented 12 years ago

Inserts work with other field types, but seem to fail if a table has a field with RAW data type, even if this field is not being inserted with a value:

!|Insert|Test| |column1| |sssss|

Table Definition: CREATE TABLE "someDB"."TEST" ( "COLUMN1" VARCHAR2(20 BYTE), "COLUMN2" RAW(20) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT ) TABLESPACE "someDB_DATA" ;

Stack Trace: Insert System.NotSupportedException: Type RAW is not supported at dbfit.OracleEnvironment.GetDBType(String dataType) at dbfit.OracleEnvironment.ReadIntoParams(String[] queryParameters, String query) at dbfit.OracleEnvironment.GetAllColumns(String tableOrViewName) at dbfit.fixture.Insert.InitParameters(Parse headerCells) at dbfit.fixture.Insert.DoRows(Parse rows) at fit.Fixture.DoTable(Parse table) at fitSharp.Machine.Model.ObjectExtension.As[T](Object item, Action1 action) at fit.Fixture.Interpret(CellProcessor processor, Tree1 table) at fitSharp.Fit.Operators.RunTestDefault.DoTable(Tree1 table, Interpreter activeFixture, CellProcessor processor, Boolean inFlow) at fitSharp.Fit.Operators.InterpretFlow.ProcessRestOfTable(Interpreter childInterpreter, Tree1 theRestOfTheRows)

jediwhale commented 12 years ago

RAW needs to be added to the list of types in dbfitOracle\OracleEnvironment.cs. I don't have an Oracle database set up to test this right now. Any one else want to give it a try?

emarutian commented 12 years ago

That does it! Thank you. The exact change details are below if needed. File: dbFitOracle\OracleEnvironment.cs: from private static string[] StringTypes = new string[] { "VARCHAR", "VARCHAR2", "NVARCHAR2", "CHAR", "NCHAR", "ROWID", "CLOB", "NCLOB" }; to: private static string[] StringTypes = new string[] { "VARCHAR", "VARCHAR2", "NVARCHAR2", "CHAR", "NCHAR", "ROWID", "CLOB", "NCLOB", "RAW" };

jediwhale commented 11 years ago

fixed