directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Created: (DIRSERVER-1398) Add tests for modify Operation
Date Mon, 10 Aug 2009 09:25:15 GMT
Add tests for modify Operation
------------------------------

                 Key: DIRSERVER-1398
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1398
             Project: Directory ApacheDS
          Issue Type: Task
    Affects Versions: 1.5.4
            Reporter: Emmanuel Lecharny
             Fix For: 1.5.5


We need more test coverage for the modify operation. I have written 30 unit tests for the
add and remove changes, and discovered 3 bugs in the server. Here are the missing tests (a
* in front of the test means it's already implemented) :

- add change :
 1) Entry exists
*  1.1) AT does not exist in entry
*   - new valid AVA, new AT is in MAY :OK1
*   - new valid AVA, new AT is not in MAY => error : OK
*   - new valid AVA, new AT is not in MAY, but OC contains extensibleOC :OK
*   - new valid AVA, new AT is not in MAY, but OC contains extensibleOC, legal empty value
:OK
*   - new invalid AVA, not existing AT => error :OK
*   - new invalid AVA, existing AT, two values in a single valued AT => error :OK
*   - new invalid AVA, not existing AT, extensibleObject in OCs => error :OK
*   - new invalid AVA (Value is invalid per syntax), AT is in MAY => error :OK
*   - new invalid AVA (Value is invalid per syntax), AT is not in MAY, but OC contains extensibleOC
=> error :OK
*   - new OperationalAttribute => error :OK
*   - new OperationalAttribute, OC contains extensibleOC => error :OK

  1.2) AT exists
*   - new valid Value, not existing, AT is multiValued : OK
*   - new valid Value, existing, AT is multiValued => error  ???
*   - new empty valid Value, existing, AT is multiValued
*   - new valid Value, AT is singleValued => error
*   - new valid Value, existing, AT is singleValued
*   - new invalid Value => error

  1.3) Entry is an alias
   TODO : define the tests

  1.4) Entry is a referral
   TODO : define the tests

  1.5) Entry is a schema entry
   TODO : define the tests

  1.6) The added AT is an ObjectClass
   TODO : define the tests
   
* 2) Entry does not exists => error

 3) User does not have enough rights
   TODO : define the tests


Delete change :

 1) Entry exists
  1.1) The AT exists
*   - The Value exists, it's not part of the RDN, the AT is not singleValued, there are other
values
*   - The Values exist, they are not part of the RDN, the AT is not singleValued, all the
values will be removed
*   - The Value exists, it's not part of the RDN, this is the unique value, it's part of MUST
=> error
*   - The Value exists, it's not part of the RDN, the AT is singleValued, the AT is not in
MUST
*   - The Value exists, it's not part of the RDN, the AT is singleValued, the AT is in MUST
=> error
*   - The Value exists, it's part of the RDN => error
*   - The AVA has no value, it's not part of the RDN, it's not part of MUST
*   - The AVA has no value, it's not part of the RDN, it's part of MUST => error
*   - The AVA has no value, it's part of the RDN => error
*   - The Value does not exists => error

  1.2) The AT does not exist
*   - The AT does not exists, and is not part of MAY/MUST => error
*   - The AT does not exists, and is part of MAY/MUST => error

  1.3) Entry is an alias
   TODO : define the tests

  1.4) Entry is a referral
   TODO : define the tests

  1.5) Entry is a schema entry
   TODO : define the tests

  1.6) The deleted AT is an ObjectClass
   TODO : define the tests
   
* 2) Entry does not exist => error

 3) user does not have enough rights
   TODO : define the tests


Replace change  :
 1) Entry exists
  1.1) The AT exists
   TODO : define the tests

  1.2) The AT does not exist
   TODO : define the tests

  1.3) Entry is an alias
   TODO : define the tests

  1.4) Entry is a referral
   TODO : define the tests

  1.5) Entry is a schema entry
   TODO : define the tests

  1.6) The deleted AT is an ObjectClass
   TODO : define the tests

 2) Entry does not exist => error
   TODO : define the tests

 3) user does not have enough rights
   TODO : define the tests

Multiple operations :
Typically, such as :
  Add X,x ..., Del X,x (null operation)
  Del X,y ..., Add X,z (replace [X, y->z])
  Del X,x ..., Del X,x (double delete, should ignore the second deletion)
  

Add ... Add
Add ... Del
Add ... Replace

Del ... Del
Del ... Add
Del ... Replace

Replace ... Replace
Replace ... Add
Replace ... Del


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message