dlna
This commit is contained in:
+36
-5
@@ -1,13 +1,14 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/class
|
||||
"utils.rkt"
|
||||
)
|
||||
(require racket/class)
|
||||
|
||||
(provide libraries%
|
||||
library%
|
||||
)
|
||||
|
||||
(define (new-id)
|
||||
(string->symbol
|
||||
(format "id-~a-~a" (current-milliseconds) (random 1000000))))
|
||||
|
||||
(define library%
|
||||
(class object%
|
||||
@@ -85,7 +86,7 @@
|
||||
(define/public (add-library l)
|
||||
(let ((libs (send this libraries)))
|
||||
(send this set-libraries!
|
||||
(cons (send l ->list) libs))
|
||||
(cons l libs))
|
||||
(set! libs #f)
|
||||
(send l get-id)))
|
||||
|
||||
@@ -111,4 +112,34 @@
|
||||
))
|
||||
(f (send this libraries))))
|
||||
|
||||
))
|
||||
))
|
||||
|
||||
(module+ test
|
||||
(require rackunit)
|
||||
|
||||
(define settings%
|
||||
(class object%
|
||||
(super-new)
|
||||
(define values (make-hasheq))
|
||||
(define/public (clone section) this)
|
||||
(define/public (get key default)
|
||||
(hash-ref values key default))
|
||||
(define/public (set! key value)
|
||||
(hash-set! values key value))))
|
||||
|
||||
(define settings (new settings%))
|
||||
(define libraries (new libraries% [settings settings]))
|
||||
(define library
|
||||
(new library%
|
||||
[id 'test-library]
|
||||
[name "Test library"]
|
||||
[local-path "/music"]
|
||||
[host ""]
|
||||
[prefixes "/music"]))
|
||||
|
||||
(check-eq? (send libraries add-library library) 'test-library)
|
||||
(check-equal? (send settings get 'libraries #f)
|
||||
'((test-library "Test library" "/music" "" "/music" #f)))
|
||||
(check-equal? (send libraries count) 1)
|
||||
(check-eq? (send libraries get-library 'test-library)
|
||||
(car (send libraries libraries))))
|
||||
|
||||
Reference in New Issue
Block a user