(SEMANTIC CHANGE) update-objects-joins now simpler and more predicatble
[clsql.git] / tests / test-ooddl.lisp
index fb4e14302015396c2ab7e4b7b6a452a0e9e40efe..9037e53280fa1c9e5d6080996a72b227ffa06556 100644 (file)
@@ -1,24 +1,23 @@
 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
-;;;; ======================================================================
-;;;; File:    test-ooddl.lisp
-;;;; Author:  Marcus Pearce <m.t.pearce@city.ac.uk>
-;;;; Created: 30/03/2004
-;;;; Updated: $Id$
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Tests for the CLSQL Object Oriented Data Definition Language
-;;;; (OODDL).
+;;;; Name:     test-ooddl.lisp
+;;;; Purpose:  Tests for the CLSQL Object Oriented Data Definition Language
+;;;; Authors:  Marcus Pearce and Kevin M. Rosenberg
+;;;; Created:  March 2004
 ;;;;
 ;;;; This file is part of CLSQL.
 ;;;;
 ;;;; CLSQL users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
-;;;; ======================================================================
+;;;; *************************************************************************
 
 
 (in-package #:clsql-tests)
 
-#.(clsql:locally-enable-sql-reader-syntax)
+(clsql-sys:file-enable-sql-reader-syntax)
 
 
 (def-view-class big ()
       (slot-value (employee-manager employee2) 'last-name))
   "Lenin")
 
+(deftest :ooddl/join/4
+    (with-dataset *ds-employees*
+      (values
+       (length (employee-addresses employee10))
+       ;; add an address
+       (let ((*db-auto-sync* T))
+         (make-instance 'address :addressid 50)
+         (make-instance 'employee-address :emplid 10 :addressid 50)
+         ;; again
+         (length (employee-addresses employee10)))
+       (progn
+         (update-objects-joins (list employee10) :slots '(addresses))
+         (length (employee-addresses employee10)))))
+  0 0 1)
+
 (deftest :ooddl/big/1
     ;;tests that we can create-view-from-class with a bigint slot,
     ;; and stick a value in there.
     (progn (clsql-sys:create-view-from-class 'big)
           (values
-            (clsql:table-exists-p [big] :owner *test-database-user*)
+            (clsql:table-exists-p [big] )
             (progn
               (clsql:drop-table [big] :if-does-not-exist :ignore)
-              (clsql:table-exists-p [big] :owner *test-database-user*)))
+              (clsql:table-exists-p [big] )))
           )
   t nil)
 
 
 ))
 
-#.(clsql:restore-sql-reader-syntax-state)