[prev] [thread] [next] [lurker] [Date index for 2005/02/04]
Author: richardc
Date: 2005-02-04 05:33:56 +0000 (Fri, 04 Feb 2005)
New Revision: 1815
Modified:
trunk/Email-Store-Pristine/
trunk/Email-Store-Pristine/lib/Email/Store/Pristine.pm
trunk/Email-Store-Pristine/t/
trunk/Email-Store-Pristine/t/pristine.t
Log:
make it all work
Property changes on: trunk/Email-Store-Pristine
___________________________________________________________________
Name: svn:ignore
+ Build
blib
_build
*.tar.gz
Modified: trunk/Email-Store-Pristine/lib/Email/Store/Pristine.pm
===================================================================
--- trunk/Email-Store-Pristine/lib/Email/Store/Pristine.pm 2005-02-04 05:13:45 UTC (rev 1814)
+++ trunk/Email-Store-Pristine/lib/Email/Store/Pristine.pm 2005-02-04 05:33:56 UTC (rev 1815)
@@ -27,10 +27,11 @@
use strict;
use warnings;
use base 'Email::Store::DBI';
-__PACKAGE__->table("pristine_mail");
-__PACKAGE__->columns(All => qw/id mail message/);
+__PACKAGE__->table("pristine");
+__PACKAGE__->columns(All => qw/id mail message/);
+__PACKAGE__->columns(TEMP => qw/simple/);
__PACKAGE__->has_a(mail => 'Email::Store::Mail');
-Email::Store::Mail->has_many( pristine_copies => [ __PACKAGE__, 'mail' ] );
+Email::Store::Mail->has_many( pristine_copies => __PACKAGE__ );
# I damn well want to be first
sub on_store_order { -20000 }
@@ -46,6 +47,7 @@
sub on_store {
my ($self, $mail) = @_;
+ print "On store\n";
$self->_store( $mail, $mail->simple->as_string );
}
@@ -60,12 +62,24 @@
$self->_store( $mail, $message );
}
-sub message { die "which part of pristine didn't you get?" }
+sub message {
+ my $self = shift;
+ if (@_) {
+ die "which part of pristine didn't you get?"
+ }
+ $self->get('message');
+}
+# hmm, is there a way to make this Email::Simple object readonly too?
+sub simple {
+ my $self = shift;
+ return $self->{simple} ||= Email::Simple->new( $self->message );
+}
+
1;
-__END__
+__DATA__
-CREATE TABLE IF NOT EXISTS pristine_mail (
+CREATE TABLE IF NOT EXISTS pristine (
id integer NOT NULL auto_increment primary key,
mail varchar(255) NOT NULL,
message text
Property changes on: trunk/Email-Store-Pristine/t
___________________________________________________________________
Name: svn:ignore
+ test.db
Modified: trunk/Email-Store-Pristine/t/pristine.t
===================================================================
--- trunk/Email-Store-Pristine/t/pristine.t 2005-02-04 05:13:45 UTC (rev 1814)
+++ trunk/Email-Store-Pristine/t/pristine.t 2005-02-04 05:33:56 UTC (rev 1815)
@@ -1,8 +1,9 @@
# -*- cperl -*-
-use Test::More tests => 20;
+use Test::More tests => 7;
use File::Slurp;
BEGIN { unlink("t/test.db"); }
-use Email::Store "dbi:SQLite:dbname=t/test.db";
+use Email::Store { only => [qw( Mail List Pristine )] },
+ "dbi:SQLite:dbname=t/test.db";
Email::Store->setup;
ok(1, "Set up");
@@ -14,3 +15,18 @@
is(@mails, 1, "Only one mail");
is($mails[0]->message_id, '20001128211546.A29664@xxxxxxxxx.xxx', "Correct ID");
like($mails[0]->message, qr/PRE_PROCESS/, "Contains the right stuff");
+
+my @copies = $mails[0]->pristine_copies;
+is(@copies, 1, "one pristine copy" );
+
+# we're expecting the List plugin to have fiddled with the subject line
+is($mails[0]->simple->header('subject'),
+ 'ttree problems - the sequel',
+ 'the mail has a munged subject' );
+is($copies[0]->simple->header('subject'),
+ '[Templates] ttree problems - the sequel',
+ "but the pristine copy doesn't");
+
+
+# to test. getting one copy to you, one to the list - expect 1 mail
+# and 2 pristine
Generated at 11:00 on 04 Feb 2005 by mariachi 0.52