-
Notifications
You must be signed in to change notification settings - Fork 820
/
Indexes.cs
133 lines (110 loc) · 4.37 KB
/
Indexes.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
using Raven.Abstractions.Indexing;
namespace Raven.Tests.Silverlight
{
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq;
using Client.Document;
using Client.Extensions;
using Microsoft.Silverlight.Testing;
using Microsoft.VisualStudio.TestTools.UnitTesting;
public class Indexes : RavenTestBase
{
[Asynchronous]
public IEnumerable<Task> Can_get_index_names_async()
{
var dbname = GenerateNewDatabaseName();
var documentStore = new DocumentStore {Url = Url + Port};
documentStore.Initialize();
yield return documentStore.AsyncDatabaseCommands.EnsureDatabaseExistsAsync(dbname);
yield return
documentStore.AsyncDatabaseCommands.ForDatabase(dbname).PutIndexAsync("test", new IndexDefinition
{
Map = "from doc in docs select new { doc.Name}"
}, true);
var task = documentStore.AsyncDatabaseCommands.ForDatabase(dbname).GetIndexNamesAsync(0, 25);
yield return task;
Assert.IsTrue(task.Result.Any(x => x == "test"));
}
[Asynchronous]
public IEnumerable<Task> Can_get_indexes_async()
{
var dbname = GenerateNewDatabaseName();
var documentStore = new DocumentStore {Url = Url + Port};
documentStore.Initialize();
yield return documentStore.AsyncDatabaseCommands.EnsureDatabaseExistsAsync(dbname);
yield return
documentStore.AsyncDatabaseCommands.ForDatabase(dbname).PutIndexAsync("test", new IndexDefinition
{
Map = "from doc in docs select new { doc.Name}"
}, true);
var task = documentStore.AsyncDatabaseCommands.ForDatabase(dbname).GetIndexesAsync(0, 25);
yield return task;
Assert.IsTrue(task.Result.Any(x => x.Name == "test"));
}
[Asynchronous]
public IEnumerable<Task> Can_put_an_index_async()
{
var dbname = GenerateNewDatabaseName();
var documentStore = new DocumentStore {Url = Url + Port};
documentStore.Initialize();
yield return documentStore.AsyncDatabaseCommands.EnsureDatabaseExistsAsync(dbname);
yield return documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.PutIndexAsync("Test", new IndexDefinition
{
Map = "from doc in docs.Companies select new { doc.Name }"
}, true);
var verification = documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.GetIndexNamesAsync(0, 25);
yield return verification;
Assert.IsTrue(verification.Result.Contains("Test"));
}
[Asynchronous]
public IEnumerable<Task> Can_delete_an_index_async()
{
var dbname = GenerateNewDatabaseName();
var documentStore = new DocumentStore {Url = Url + Port};
documentStore.Initialize();
yield return documentStore.AsyncDatabaseCommands.EnsureDatabaseExistsAsync(dbname);
yield return documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.PutIndexAsync("Test", new IndexDefinition
{
Map = "from doc in docs.Companies select new { doc.Name }"
}, true);
var verify_put = documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.GetIndexNamesAsync(0, 25);
yield return verify_put;
Assert.IsTrue(verify_put.Result.Contains("Test"));
yield return documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.DeleteIndexAsync("Test");
var verify_delete = documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.GetIndexNamesAsync(0, 25);
yield return verify_delete;
//NOTE: this is failing because Silverlight is caching the response from the first verification
Assert.IsFalse(verify_delete.Result.Contains("Test"));
}
[Asynchronous]
public IEnumerable<Task> Can_get_a_single_index_by_name()
{
var dbname = GenerateNewDatabaseName();
var documentStore = new DocumentStore { Url = Url + Port };
documentStore.Initialize();
yield return documentStore.AsyncDatabaseCommands.EnsureDatabaseExistsAsync(dbname);
yield return documentStore.AsyncDatabaseCommands
.ForDatabase(dbname)
.PutIndexAsync("Test", new IndexDefinition
{
Map = "from doc in docs.Companies select new { doc.Name }"
}, true);
var task = documentStore.AsyncDatabaseCommands.ForDatabase(dbname).GetIndexAsync("Test");
yield return task;
Assert.AreEqual("Test", task.Result.Name);
}
}
}