diff --git a/src/app/search/components/criteria/criteria-by-family.component.html b/src/app/search/components/criteria/criteria-by-family.component.html
index bfdd33113b77d9839ae9211c6a4ed6ffb5d96321..bcbabb60356f3899f012836cb8ddf2bd7c408832 100644
--- a/src/app/search/components/criteria/criteria-by-family.component.html
+++ b/src/app/search/components/criteria/criteria-by-family.component.html
@@ -92,7 +92,7 @@
                 [operator]="attribute.operator"
                 [label]="attribute.form_label" 
                 [criterion]="getCriterion(attribute.id)" 
-                (add)="add($event)"
+                (addCriterion)="add($event)"
                 (deleteCriterion)="delete($event)">
             </app-between-date>
         </div>
diff --git a/src/app/search/components/criteria/search-type/between-date.component.html b/src/app/search/components/criteria/search-type/between-date.component.html
index ae2167e54c9cb4a7894b8fa0535eec78f8ac4094..2b029395973ed84c24f89705f6b106fddc813852 100644
--- a/src/app/search/components/criteria/search-type/between-date.component.html
+++ b/src/app/search/components/criteria/search-type/between-date.component.html
@@ -12,7 +12,7 @@
     </div>
     <div class="col-2 text-center">
         <button class="btn btn-outline-success" *ngIf="!field.disabled" [hidden]="!field.value"
-            (click)="addCriterion()">
+            (click)="emitAdd()">
             <span class="fas fa-plus fa-fw"></span>
         </button>
         <button class="btn btn-outline-danger" *ngIf="field.disabled" (click)="emitDelete()">
diff --git a/src/app/search/components/criteria/search-type/between-date.component.spec.ts b/src/app/search/components/criteria/search-type/between-date.component.spec.ts
index 3b2c89d88a148e669da468534c994b44300849df..44527b85e851f5096017e9bed839ad8c3b6bfea3 100644
--- a/src/app/search/components/criteria/search-type/between-date.component.spec.ts
+++ b/src/app/search/components/criteria/search-type/between-date.component.spec.ts
@@ -1,10 +1,10 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { BsDatepickerModule } from 'ngx-bootstrap';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { FormsModule, ReactiveFormsModule, FormControl } from '@angular/forms';
 
 import { BetweenDateComponent } from './between-date.component';
-import { Criterion, BetweenCriterion } from '../../../store/model';
+import { BetweenCriterion } from '../../../store/model';
 
 describe('[Search][Criteria][SearchType] Component: BetweenDateComponent', () => {
     let component: BetweenDateComponent;
@@ -45,15 +45,19 @@ describe('[Search][Criteria][SearchType] Component: BetweenDateComponent', () =>
         expect(component.field.disabled).toBeTruthy();
     });
 
-    // it('raises the add criterion event when clicked', () => {
-    //     component.id = 123;
-    //     component.deleteCriterion.subscribe((event: number) => expect(event).toEqual(component.id));
-    //     component.emitDelete();
-    // });
-
-    // it('raises the delete criterion event when clicked', () => {
-    //     component.id = 123;
-    //     component.deleteCriterion.subscribe((event: number) => expect(event).toEqual(component.id));
-    //     component.emitDelete();
-    // });
+    it('raises the add criterion event when clicked', () => {
+        component.id = 1;
+        const dateMin = '2019-02-08';
+        const dateMax = '2019-02-17';
+        component.field = new FormControl([new Date(dateMin), new Date(dateMax)]);
+        const expectedCriterion = new BetweenCriterion(component.id, dateMin, dateMax);
+        component.addCriterion.subscribe((event: BetweenCriterion) => expect(event).toEqual(expectedCriterion));
+        component.emitAdd();
+    });
+
+    it('raises the delete criterion event when clicked', () => {
+        component.id = 1;
+        component.deleteCriterion.subscribe((event: number) => expect(event).toEqual(1));
+        component.emitDelete();
+    });
 });
diff --git a/src/app/search/components/criteria/search-type/between-date.component.ts b/src/app/search/components/criteria/search-type/between-date.component.ts
index bd90111520f21d7d1d62da9acd666e357be82a7b..a4dca2c7c85585a8f866d18b181ebd85ee6338fa 100644
--- a/src/app/search/components/criteria/search-type/between-date.component.ts
+++ b/src/app/search/components/criteria/search-type/between-date.component.ts
@@ -16,20 +16,19 @@ export class BetweenDateComponent {
     set criterion(criterion: Criterion) {
         this.getDefault(criterion);
     }
-    @Output() add: EventEmitter<BetweenCriterion> = new EventEmitter();
+    @Output() addCriterion: EventEmitter<BetweenCriterion> = new EventEmitter();
     @Output() deleteCriterion: EventEmitter<number> = new EventEmitter();
 
     field = new FormControl('');
 
-    addCriterion(): void {
-        console.log(this.field.value);
+    emitAdd(): void {
         const dateMin = this.getDateString(this.field.value[0]);
         const dateMax = this.getDateString(this.field.value[1]);
         const fd = new BetweenCriterion(this.id, dateMin, dateMax);
-        this.add.emit(fd);
+        this.addCriterion.emit(fd);
     }
 
-    emitDelete() {
+    emitDelete(): void {
         this.deleteCriterion.emit(this.id);
     }
 
diff --git a/src/app/search/store/model/between-criterion.model.spec.ts b/src/app/search/store/model/between-criterion.model.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6b504d868048f6e003fb877c3f8e868ed2b45d73
--- /dev/null
+++ b/src/app/search/store/model/between-criterion.model.spec.ts
@@ -0,0 +1,27 @@
+import { BetweenCriterion } from './between-criterion.model';
+
+describe('[Search] Model: BetweenCriterion', () => {
+
+    it('should print criterion correctly', () => {
+        const dateMin = '2019-02-08';
+        const dateMax = '2019-02-17';
+        const criterion = new BetweenCriterion(1, dateMin, dateMax);
+        const expectedPrintedCriterion = '∈ [' + dateMin + ';' + dateMax + ']';
+        expect(criterion.printCriterion()).toEqual(expectedPrintedCriterion);
+        const criterionMin = new BetweenCriterion(1, dateMin, '');
+        const expectedPrintedCriterionMin = '>= ' + dateMin;
+        expect(criterionMin.printCriterion()).toEqual(expectedPrintedCriterionMin);
+        const criterionMax = new BetweenCriterion(1, '', dateMax);
+        const expectedPrintedCriterionMax = '<= ' + dateMax;
+        expect(criterionMax.printCriterion()).toEqual(expectedPrintedCriterionMax);
+    });
+
+    it('should print criterion url string correctly', () => {
+        const id = 1;
+        const dateMin = '2019-02-08';
+        const dateMax = '2019-02-17';
+        const criterion = new BetweenCriterion(id, dateMin, dateMax);
+        const expectedPrintedCriterion = id + '::bw::' + dateMin + '|' + dateMax;
+        expect(criterion.getCriterionStr()).toEqual(expectedPrintedCriterion);
+    });
+});