Skip to content

Commit 4ca4953

Browse files
author
kendarorg
committed
Implemented the search query
1 parent 133cf08 commit 4ca4953

15 files changed

Lines changed: 557 additions & 191 deletions

Nuget.Lib.Test/Nuget.Lib.Test.csproj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
<Reference Include="Moq, Version=4.9.0.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
5151
<HintPath>..\packages\Moq.4.9.0\lib\net45\Moq.dll</HintPath>
5252
</Reference>
53+
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
54+
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
55+
</Reference>
5356
<Reference Include="System" />
5457
<Reference Include="System.Configuration" />
5558
<Reference Include="System.Core" />
@@ -67,9 +70,11 @@
6770
<Compile Include="NugetSearchQueryServiceTest.cs" />
6871
<Compile Include="NugetServicesMapperTest.cs" />
6972
<Compile Include="Properties\AssemblyInfo.cs" />
73+
<Compile Include="ServicesMapperMock.cs" />
74+
<Compile Include="Utils\JsonComp.cs" />
7075
</ItemGroup>
7176
<ItemGroup>
72-
<EmbeddedResource Include="nuget.org.settings.json" />
77+
<EmbeddedResource Include="Resources\nuget.org.settings.json" />
7378
</ItemGroup>
7479
<ItemGroup>
7580
<ProjectReference Include="..\Ioc.Shared\Ioc.Shared.csproj">
@@ -96,6 +101,8 @@
96101
<ItemGroup>
97102
<None Include="app.config" />
98103
<None Include="packages.config" />
104+
<EmbeddedResource Include="Resources\ISPToGetReleases.json" />
105+
<EmbeddedResource Include="Resources\ISPToGetMajorWhenGreaterThanPreAskingForPre.json" />
99106
</ItemGroup>
100107
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
101108
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Lines changed: 248 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,259 @@
1-
using System;
1+
using Ioc;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Moq;
4+
using MultiRepositories.Repositories;
5+
using Newtonsoft.Json;
6+
using Nuget.Apis;
7+
using Nuget.Lib.Test.Utils;
8+
using Nuget.Repositories;
9+
using NugetProtocol;
10+
using System;
211
using System.Collections.Generic;
312
using System.Linq;
413
using System.Text;
514
using System.Threading.Tasks;
615

716
namespace Nuget.Lib.Test
817
{
18+
[TestClass]
919
public class NugetSearchQueryServiceTest
1020
{
21+
private IQueryRepository _queryRepository;
22+
private IRepositoryEntitiesRepository _repositoryEntitiesRepository;
23+
24+
private IServicesMapper _servicesMapper;
25+
private Guid _repoId;
26+
private Mock<IQueryRepository> _queryRepositoryMock;
27+
28+
[TestInitialize]
29+
public void Initialize()
30+
{
31+
/*var au = new AssemblyUtils();
32+
var data = au.ReadRes<NugetServicesMapperTest>("nuget.org.settings.json");
33+
34+
35+
var mock = new Mock<IRepositoryEntitiesRepository>();
36+
mock.Setup(r => r.GetByType(It.IsAny<string>())).
37+
Returns(new List<RepositoryEntity>
38+
{
39+
new RepositoryEntity
40+
{
41+
Address = "nuget.org",
42+
Id = repoId,
43+
Mirror = true,
44+
Prefix = "nuget.org",
45+
Settings = data,
46+
Type = "nuget"
47+
}
48+
});
49+
repo = mock.Object;*/
50+
_repoId = Guid.NewGuid();
51+
_queryRepositoryMock = new Mock<IQueryRepository>();
52+
_queryRepository = _queryRepositoryMock.Object;
53+
var repositoryEntitiesRepository = new Mock<IRepositoryEntitiesRepository>();
54+
repositoryEntitiesRepository.Setup(r => r.GetByType(It.IsAny<string>())).
55+
Returns(new List<RepositoryEntity>
56+
{
57+
new RepositoryEntity
58+
{
59+
Address = "nuget.org",
60+
Id = _repoId,
61+
Mirror = true,
62+
Prefix = "nuget.org",
63+
Settings = "",
64+
Type = "nuget"
65+
}
66+
});
67+
_repositoryEntitiesRepository = repositoryEntitiesRepository.Object;
68+
69+
_servicesMapper = new ServicesMapperMock("nuget.org", _repoId);
70+
}
71+
72+
[TestMethod]
73+
public void ISPTogetEmptyResult()
74+
{
75+
var au = new AssemblyUtils();
76+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
77+
78+
var result = target.Query(_repoId, new QueryModel());
79+
80+
Assert.IsNotNull(result);
81+
Assert.AreEqual(0, result.Data.Count);
82+
}
83+
84+
[TestMethod]
85+
public void ISPToGetReleases()
86+
{
87+
var au = new AssemblyUtils();
88+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
89+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
90+
Returns(new List<QueryEntity>
91+
{
92+
new QueryEntity //Prerelase
93+
{
94+
Version="1",
95+
CsvVersions="1,2",
96+
PackageId="test",
97+
HasRelease=true
98+
}
99+
});
100+
101+
var result = target.Query(_repoId, new QueryModel());
102+
103+
Assert.IsNotNull(result);
104+
JsonComp.Equals("ISPToGetReleases.json", result);
105+
}
106+
107+
[TestMethod]
108+
public void ISPToGetReleasesWithPrePresent()
109+
{
110+
var au = new AssemblyUtils();
111+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
112+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
113+
Returns(new List<QueryEntity>
114+
{
115+
new QueryEntity //Prerelase
116+
{
117+
Version="1",
118+
CsvVersions="1,2",
119+
HasRelease=true,
120+
PreVersion="2",
121+
PreCsvVersion="3,4",
122+
PackageId="test",
123+
HasPreRelease=true
124+
}
125+
});
126+
127+
var result = target.Query(_repoId, new QueryModel());
128+
129+
Assert.IsNotNull(result);
130+
JsonComp.Equals("ISPToGetReleases.json", result);
131+
}
132+
133+
[TestMethod]
134+
public void ISPToGetPreReleases()
135+
{
136+
var au = new AssemblyUtils();
137+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
138+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
139+
Returns(new List<QueryEntity>
140+
{
141+
new QueryEntity //Prerelase
142+
{
143+
PreVersion="1",
144+
PreCsvVersion="1,2",
145+
PackageId="test",
146+
HasPreRelease=true
147+
}
148+
});
149+
150+
var result = target.Query(_repoId, new QueryModel()
151+
{
152+
PreRelease = true
153+
});
154+
155+
Assert.IsNotNull(result);
156+
JsonComp.Equals("ISPToGetReleases.json", result);
157+
}
158+
159+
160+
161+
[TestMethod]
162+
public void ISPToGetTheReleaseWhenPreReleasesIsMissing()
163+
{
164+
var au = new AssemblyUtils();
165+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
166+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
167+
Returns(new List<QueryEntity>
168+
{
169+
new QueryEntity
170+
{
171+
Version="1",
172+
CsvVersions="1,2",
173+
PackageId="test",
174+
HasRelease=true
175+
}
176+
});
177+
178+
var result = target.Query(_repoId, new QueryModel()
179+
{
180+
PreRelease = true
181+
});
182+
183+
Assert.IsNotNull(result);
184+
JsonComp.Equals("ISPToGetReleases.json", result);
185+
}
186+
187+
188+
189+
[TestMethod]
190+
public void ISPToGetMajorWhenGreaterThanPreAskingForPre()
191+
{
192+
var au = new AssemblyUtils();
193+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
194+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
195+
Returns(new List<QueryEntity>
196+
{
197+
new QueryEntity //Prerelase
198+
{
199+
Version="5",
200+
CsvVersions="5,6",
201+
HasRelease=true,
202+
PreVersion="2",
203+
PreCsvVersion="3,4",
204+
PackageId="test",
205+
HasPreRelease=true
206+
}
207+
});
208+
209+
var result = target.Query(_repoId, new QueryModel()
210+
{
211+
PreRelease = true
212+
});
213+
214+
Assert.IsNotNull(result);
215+
JsonComp.Equals("ISPToGetMajorWhenGreaterThanPreAskingForPre.json", result);
216+
}
217+
218+
219+
[TestMethod]
220+
public void ISPToGetPreWhenGreaterThanMajorAskingForPre()
221+
{
222+
var au = new AssemblyUtils();
223+
var target = new NugetSearchQueryService(_queryRepository, _repositoryEntitiesRepository, _servicesMapper);
224+
_queryRepositoryMock.Setup(a => a.Query(It.IsAny<Guid>(), It.IsAny<QueryModel>())).
225+
Returns(new List<QueryEntity>
226+
{
227+
new QueryEntity //Prerelase
228+
{
229+
Version="4",
230+
CsvVersions="3.4",
231+
HasRelease=true,
232+
PreVersion="5",
233+
PreCsvVersion="5,6",
234+
PackageId="test",
235+
HasPreRelease=true
236+
}
237+
});
238+
239+
var result = target.Query(_repoId, new QueryModel()
240+
{
241+
PreRelease = true
242+
});
243+
244+
Assert.IsNotNull(result);
245+
JsonComp.Equals("ISPToGetMajorWhenGreaterThanPreAskingForPre.json", result);
246+
}
11247
}
248+
249+
/*new QueryEntity
250+
{
251+
Version="",
252+
PreVersion="",
253+
CsvVersions="",
254+
CsvPreVersions="",
255+
PackageId="",
256+
HasRelease=true,
257+
HasPreRelease=true
258+
}*/
12259
}

0 commit comments

Comments
 (0)