(SEMANTIC CHANGE) update-objects-joins now simpler and more predicatble
[clsql.git] / tests / test-ooddl.lisp
index 24a9750fcc25b1775887e78d7013f88e297378fc..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 ()
             (clsql-sys::class-slots (find-class 'company))))
   t t t t t t)
 
-;; Ensure classes are correctly marked normalised or not, default not
+;; Ensure classes are correctly marked normalized or not, default not
 ;(deftest :ooddl/metaclass/3
 ;    (values
-;     (clsql-sys::normalisedp derivednode1)
-;    (clsql-sys::normalisedp basenode)
-;    (clsql-sys::normalisedp company1)
-;    (clsql-sys::normalisedp employee3)
-;    (clsql-sys::normalisedp derivednode-sc-2))
+;     (clsql-sys::normalizedp derivednode1)
+;    (clsql-sys::normalizedp basenode)
+;    (clsql-sys::normalizedp company1)
+;    (clsql-sys::normalizedp employee3)
+;    (clsql-sys::normalizedp derivednode-sc-2))
 ;  t nil nil nil t)
 
 ;(deftest :ooddl/metaclass/3
 ; (values
-;  (normalisedp (find-class 'baseclass))
-;  (normalisedp (find-class 'normderivedclass)))
+;  (normalizedp (find-class 'baseclass))
+;  (normalizedp (find-class 'normderivedclass)))
 ; nil t)
 
 (deftest :ooddl/join/1
       (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)