Index: /trunk/Nebulous-Server/t/18_client_open.t
===================================================================
--- /trunk/Nebulous-Server/t/18_client_open.t	(revision 2896)
+++ /trunk/Nebulous-Server/t/18_client_open.t	(revision 2896)
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+
+# Copryight (C) 2004-2005  Joshua Hoblitt
+#
+# $Id: 18_client_open.t,v 1.1 2005-01-05 01:41:05 jhoblitt Exp $
+
+use strict;
+use warnings FATAL => qw( all );
+
+use Apache::Test qw( -withtestmore );
+
+plan tests => 7;
+
+use lib qw( ./t ./lib );
+
+use PS::IPP::IData::Client;
+use PS::IPP::IData::Util qw( :standard );
+use Test::IData;
+
+my $hostport = Apache::Test->config->{ 'hostport' };
+
+Test::IData->setup;
+
+{
+    # key
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->create( "foo" );
+    my $fh = $idata->open( "foo", 'read' );
+
+    is( ref $fh, 'GLOB', "good filehandle" );
+}
+
+Test::IData->setup;
+
+{
+    # key
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->create( "foo" );
+    my $fh = $idata->open( "foo", 'write' );
+
+    is( ref $fh, 'GLOB', "good filehandle" );
+}
+
+Test::IData->setup;
+
+{
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+
+    is( ref $idata->open( "foo", 'write' ), 'GLOB', "create new object" );
+}
+
+Test::IData->setup;
+
+{
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+
+    is( $idata->open( "foo", 'read' ), undef, "can't create new object" );
+}
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open( "foo", 'bar' );
+};
+like( $@, qr/is read or write/, "2nd params not read or write" );
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open();
+};
+like( $@, qr/2 were expected/, "no params" );
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open( 1, 'read', 3 );
+};
+like( $@, qr/2 were expected/, "too many params" );
+
+Test::IData->cleanup;
Index: /trunk/Nebulous/t/18_client_open.t
===================================================================
--- /trunk/Nebulous/t/18_client_open.t	(revision 2896)
+++ /trunk/Nebulous/t/18_client_open.t	(revision 2896)
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+
+# Copryight (C) 2004-2005  Joshua Hoblitt
+#
+# $Id: 18_client_open.t,v 1.1 2005-01-05 01:41:05 jhoblitt Exp $
+
+use strict;
+use warnings FATAL => qw( all );
+
+use Apache::Test qw( -withtestmore );
+
+plan tests => 7;
+
+use lib qw( ./t ./lib );
+
+use PS::IPP::IData::Client;
+use PS::IPP::IData::Util qw( :standard );
+use Test::IData;
+
+my $hostport = Apache::Test->config->{ 'hostport' };
+
+Test::IData->setup;
+
+{
+    # key
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->create( "foo" );
+    my $fh = $idata->open( "foo", 'read' );
+
+    is( ref $fh, 'GLOB', "good filehandle" );
+}
+
+Test::IData->setup;
+
+{
+    # key
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->create( "foo" );
+    my $fh = $idata->open( "foo", 'write' );
+
+    is( ref $fh, 'GLOB', "good filehandle" );
+}
+
+Test::IData->setup;
+
+{
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+
+    is( ref $idata->open( "foo", 'write' ), 'GLOB', "create new object" );
+}
+
+Test::IData->setup;
+
+{
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+
+    is( $idata->open( "foo", 'read' ), undef, "can't create new object" );
+}
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open( "foo", 'bar' );
+};
+like( $@, qr/is read or write/, "2nd params not read or write" );
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open();
+};
+like( $@, qr/2 were expected/, "no params" );
+
+Test::IData->setup;
+
+eval {
+    my $idata = PS::IPP::IData::Client->new(
+        proxy => "http://$hostport/idata",
+    );
+    $idata->open( 1, 'read', 3 );
+};
+like( $@, qr/2 were expected/, "too many params" );
+
+Test::IData->cleanup;
