src/test/scala/fis/crm/model/ContactSpec.scala
author Tomas Zeman <tzeman@volny.cz>
Fri, 10 Feb 2012 09:53:05 +0100
changeset 8 828565e7f571
child 23 16066379860c
permissions -rw-r--r--
ff8d393251d4dae6 Contact model
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
/*
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
 * Copyright 2011 Tomas Zeman <tzeman@volny.cz>
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
 *
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
 * Licensed under the Apache License, Version 2.0 (the "License");
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
 * you may not use this file except in compliance with the License.
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
 * You may obtain a copy of the License at
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
 *
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
 *     http://www.apache.org/licenses/LICENSE-2.0
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 *
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 * Unless required by applicable law or agreed to in writing, software
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
 * distributed under the License is distributed on an "AS IS" BASIS,
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
 * See the License for the specific language governing permissions and
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
 * limitations under the License.
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
 */
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
package fis.crm.model
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
import fis.base.model._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
import net.liftweb.common._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
import net.liftweb.util._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
import net.liftweb.util.Helpers._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
import org.scalatest._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
class ContactSpec extends AbstractTest {
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
  import CrmSchema._
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
  override def beforeAll() {
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
    super.beforeAll
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
    doInDB { schema.dropAndCreate }
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
  }
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
  "EntityContact" should "create" in { doInDB {
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
    val c1 = Contact.createRecord.name("c1")
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
    contacts.insert(c1)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
    val t1 = CodeListItem.createRecord.name("t1")
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
    codeListItems.insert(t1)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
    val c2 = Contact.createRecord.name("c2") // acts here as entity
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
    contacts.insert(c2)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
    entityContacts.insert(EntityContact(c2.id, c1.id, t1.id))
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
    val el1 = c1.entities.toList
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
    el1.size should equal (1)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
    el1.head.id should equal (c2.id)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
    el1.head.name.get should equal ("c2")
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
    val al1 = c1.entities.associations.toList
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
    al1.size should equal (1)
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
    al1.head.contactType.one should equal (Some(t1))
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
  }}
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
  object schema extends CrmSchema with DropAndCreate
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
}
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
828565e7f571 ff8d393251d4dae6 Contact model
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
// vim: set ts=2 sw=2 et: