diff --git a/storage/folder.lisp b/storage/folder.lisp index db00c3a..b48b980 100644 --- a/storage/folder.lisp +++ b/storage/folder.lisp @@ -3,18 +3,19 @@ (defpackage :scopes/storage/folder (:use :common-lisp) (:local-nicknames (:shape :scopes/shape) - (:tracking :scopes/storage/tracking)) - (:export #:folder + (:tracking :scopes/storage/tracking) + (:util :scopes/util)) + (:export #:folder #:root #:put-new #:make-container)) (in-package :scopes/storage/folder) (defclass folder (tracking:track) - ((shape:head-fields :initform '(:parent :name :ref)) - (tracking:key-fields :initform '(:parent :name)))) + ((shape:head-fields :initform '(:parentid :name :ref)) + (tracking:key-fields :initform '(:parentid :name)))) (defun indexes (cont) - '((parent name ref) (ref))) + '((parentid name ref) (ref))) (defun make-container (storage) (make-instance 'tracking:container @@ -23,3 +24,14 @@ :table-name :folders :index-factory #'indexes :storage storage)) + +(defun root (cont) + (let ((f (tracking:make-item cont nil :root))) + (tracking:save f))) + +(defun put-new (name parent) + (let* ((cont (tracking:container parent)) + (pid (write-to-string (tracking:trackid parent))) + (f (tracking:make-item cont pid name))) + (util:lgi pid f) + (tracking:save f))) diff --git a/test/test-core.lisp b/test/test-core.lisp index 34c46e7..bff2672 100644 --- a/test/test-core.lisp +++ b/test/test-core.lisp @@ -54,9 +54,9 @@ (unwind-protect (progn (test-util) + (test-record) (core:setup-services) (setf (receiver t:*test-suite*) (core:find-service :test-receiver)) - (test-record) (test-send)) (core:shutdown) (check-expected) diff --git a/test/test-storage.lisp b/test/test-storage.lisp index 5ce2303..fbe38d7 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -88,5 +88,8 @@ (setf cont (folder:make-container st)) (storage:drop-table st :folders) (tracking:create-table cont) - ;(setf root (folder:root)) + (setf root (folder:root cont)) + (== (tracking:trackid root) 1) + (== (shape:head-value root :parentid) nil) + (setf f1 (folder:put-new :child1 root)) ))