2010-04-03 06:17:13 +08:00
|
|
|
|
using System.Linq;
|
2009-12-31 03:16:17 +08:00
|
|
|
|
using Autofac;
|
2010-06-09 03:05:29 +08:00
|
|
|
|
using Moq;
|
2009-12-31 03:16:17 +08:00
|
|
|
|
using NHibernate;
|
|
|
|
|
using NUnit.Framework;
|
2010-06-09 03:05:29 +08:00
|
|
|
|
using Orchard.ContentManagement.MetaData;
|
2009-12-31 03:16:17 +08:00
|
|
|
|
using Orchard.Data;
|
|
|
|
|
using Orchard.ContentManagement;
|
|
|
|
|
using Orchard.ContentManagement.Handlers;
|
|
|
|
|
using Orchard.ContentManagement.Records;
|
2010-09-18 01:43:36 +08:00
|
|
|
|
using Orchard.DisplayManagement;
|
|
|
|
|
using Orchard.DisplayManagement.Descriptors;
|
2010-10-13 03:21:46 +08:00
|
|
|
|
using Orchard.Environment.Extensions;
|
2009-12-31 03:16:17 +08:00
|
|
|
|
using Orchard.Tests.ContentManagement.Records;
|
|
|
|
|
using Orchard.Tests.ContentManagement.Models;
|
2010-09-18 01:43:36 +08:00
|
|
|
|
using Orchard.DisplayManagement.Implementation;
|
2010-10-13 03:21:46 +08:00
|
|
|
|
using Orchard.Tests.Stubs;
|
2009-12-31 03:16:17 +08:00
|
|
|
|
|
|
|
|
|
namespace Orchard.Tests.ContentManagement {
|
|
|
|
|
[TestFixture]
|
|
|
|
|
public class ContentQueryTests {
|
|
|
|
|
private IContainer _container;
|
|
|
|
|
private IContentManager _manager;
|
|
|
|
|
private ISessionFactory _sessionFactory;
|
|
|
|
|
private ISession _session;
|
|
|
|
|
|
|
|
|
|
[TestFixtureSetUp]
|
|
|
|
|
public void InitFixture() {
|
|
|
|
|
var databaseFileName = System.IO.Path.GetTempFileName();
|
|
|
|
|
_sessionFactory = DataUtility.CreateSessionFactory(
|
|
|
|
|
databaseFileName,
|
|
|
|
|
typeof(GammaRecord),
|
|
|
|
|
typeof(DeltaRecord),
|
2009-12-31 10:14:11 +08:00
|
|
|
|
typeof(EpsilonRecord),
|
2009-12-31 03:16:17 +08:00
|
|
|
|
typeof(ContentItemVersionRecord),
|
|
|
|
|
typeof(ContentItemRecord),
|
2010-06-05 04:37:34 +08:00
|
|
|
|
typeof(ContentTypeRecord));
|
2009-12-31 03:16:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestFixtureTearDown]
|
|
|
|
|
public void TermFixture() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[SetUp]
|
|
|
|
|
public void Init() {
|
|
|
|
|
var builder = new ContainerBuilder();
|
2010-04-03 06:17:13 +08:00
|
|
|
|
// builder.RegisterModule(new ImplicitCollectionSupportModule());
|
2009-12-31 03:16:17 +08:00
|
|
|
|
builder.RegisterModule(new ContentModule());
|
2010-04-03 06:17:13 +08:00
|
|
|
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
2010-05-17 14:34:08 +08:00
|
|
|
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
2010-06-09 03:05:29 +08:00
|
|
|
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
2010-10-15 03:22:00 +08:00
|
|
|
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
2010-05-17 14:34:08 +08:00
|
|
|
|
|
2010-04-03 06:17:13 +08:00
|
|
|
|
builder.RegisterType<AlphaHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<BetaHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<GammaHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<DeltaHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<EpsilonHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<FlavoredHandler>().As<IContentHandler>();
|
2010-09-18 01:43:36 +08:00
|
|
|
|
builder.RegisterType<StyledHandler>().As<IContentHandler>();
|
|
|
|
|
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
|
|
|
|
builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>();
|
2009-12-31 03:16:17 +08:00
|
|
|
|
|
|
|
|
|
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
|
|
|
|
|
|
2010-10-13 03:21:46 +08:00
|
|
|
|
builder.RegisterType<StubExtensionManager>().As<IExtensionManager>();
|
2010-10-15 02:26:42 +08:00
|
|
|
|
builder.RegisterType<DefaultContentDisplay>().As<IContentDisplay>();
|
2010-10-13 03:21:46 +08:00
|
|
|
|
|
2009-12-31 03:16:17 +08:00
|
|
|
|
_session = _sessionFactory.OpenSession();
|
2010-04-03 06:17:13 +08:00
|
|
|
|
builder.RegisterInstance(new DefaultContentManagerTests.TestSessionLocator(_session)).As<ISessionLocator>();
|
2009-12-31 03:16:17 +08:00
|
|
|
|
|
2010-02-01 03:29:16 +08:00
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(GammaRecord).FullName));
|
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(DeltaRecord).FullName));
|
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(EpsilonRecord).FullName));
|
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(ContentItemVersionRecord).FullName));
|
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(ContentItemRecord).FullName));
|
|
|
|
|
_session.Delete(string.Format("from {0}", typeof(ContentTypeRecord).FullName));
|
2009-12-31 03:16:17 +08:00
|
|
|
|
_session.Flush();
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
_container = builder.Build();
|
|
|
|
|
_manager = _container.Resolve<IContentManager>();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void AddSampleData() {
|
|
|
|
|
_manager.Create<Alpha>("alpha", init => { });
|
|
|
|
|
_manager.Create<Beta>("beta", init => { });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "the frap value"; });
|
|
|
|
|
_manager.Create<Delta>("delta", init => { init.Record.Quux = "the quux value"; });
|
|
|
|
|
_session.Flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryInstanceIsDifferentEachTimeYouCreateOne() {
|
|
|
|
|
var contentManager1 = _container.Resolve<IContentManager>();
|
|
|
|
|
var query1a = contentManager1.Query();
|
|
|
|
|
var query1b = contentManager1.Query();
|
|
|
|
|
|
|
|
|
|
var contentManager2 = _container.Resolve<IContentManager>();
|
|
|
|
|
var query2a = contentManager2.Query();
|
|
|
|
|
var query2b = contentManager2.Query();
|
|
|
|
|
|
|
|
|
|
Assert.That(contentManager1, Is.SameAs(contentManager2));
|
|
|
|
|
Assert.That(query1a, Is.SameAs(query1a));
|
|
|
|
|
|
|
|
|
|
Assert.That(query1a, Is.Not.SameAs(query1b));
|
|
|
|
|
Assert.That(query1a, Is.Not.SameAs(query2a));
|
|
|
|
|
Assert.That(query1a, Is.Not.SameAs(query2b));
|
|
|
|
|
|
|
|
|
|
Assert.That(query1b, Is.Not.SameAs(query2a));
|
|
|
|
|
Assert.That(query1b, Is.Not.SameAs(query2b));
|
|
|
|
|
|
|
|
|
|
Assert.That(query2a, Is.Not.SameAs(query2b));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void ContentManagerPropertyIsSet() {
|
|
|
|
|
var contentManager = _container.Resolve<IContentManager>();
|
|
|
|
|
var query = contentManager.Query();
|
|
|
|
|
Assert.That(query.ContentManager, Is.SameAs(contentManager));
|
|
|
|
|
|
|
|
|
|
var mockManager = new Moq.Mock<IContentManager>().Object;
|
|
|
|
|
var anotherQuery = _container.Resolve<IContentQuery>(TypedParameter.From(mockManager));
|
|
|
|
|
Assert.That(anotherQuery, Is.Not.SameAs(query));
|
|
|
|
|
Assert.That(anotherQuery.ContentManager, Is.SameAs(mockManager));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void AllItemsAreReturnedByDefault() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
|
|
|
|
|
var allItems = _manager.Query().List();
|
|
|
|
|
|
|
|
|
|
Assert.That(allItems.Count(), Is.EqualTo(4));
|
|
|
|
|
Assert.That(allItems.Count(x => x.Has<Alpha>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(allItems.Count(x => x.Has<Beta>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(allItems.Count(x => x.Has<Gamma>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(allItems.Count(x => x.Has<Delta>()), Is.EqualTo(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SpecificTypeIsReturnedWhenSpecified() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
|
|
|
|
|
var alphaBeta = _manager.Query().ForType("alpha", "beta").List();
|
|
|
|
|
|
|
|
|
|
Assert.That(alphaBeta.Count(), Is.EqualTo(2));
|
|
|
|
|
Assert.That(alphaBeta.Count(x => x.Has<Alpha>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(alphaBeta.Count(x => x.Has<Beta>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(alphaBeta.Count(x => x.Has<Gamma>()), Is.EqualTo(0));
|
|
|
|
|
Assert.That(alphaBeta.Count(x => x.Has<Delta>()), Is.EqualTo(0));
|
|
|
|
|
|
|
|
|
|
var gammaDelta = _manager.Query().ForType("gamma", "delta").List();
|
|
|
|
|
|
|
|
|
|
Assert.That(gammaDelta.Count(), Is.EqualTo(2));
|
|
|
|
|
Assert.That(gammaDelta.Count(x => x.Has<Alpha>()), Is.EqualTo(0));
|
|
|
|
|
Assert.That(gammaDelta.Count(x => x.Has<Beta>()), Is.EqualTo(0));
|
|
|
|
|
Assert.That(gammaDelta.Count(x => x.Has<Gamma>()), Is.EqualTo(1));
|
|
|
|
|
Assert.That(gammaDelta.Count(x => x.Has<Delta>()), Is.EqualTo(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void WherePredicateRestrictsResults() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "one"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "two"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "three"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "four"; });
|
|
|
|
|
_session.Flush();
|
|
|
|
|
|
|
|
|
|
var twoOrFour = _manager.Query<Gamma, GammaRecord>()
|
|
|
|
|
.Where(x => x.Frap == "one" || x.Frap == "four")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(twoOrFour.Count(), Is.EqualTo(2));
|
|
|
|
|
Assert.That(twoOrFour.Count(x => x.Has<Gamma>()), Is.EqualTo(2));
|
|
|
|
|
Assert.That(twoOrFour.Count(x => x.Get<Gamma>().Record.Frap == "one"), Is.EqualTo(1));
|
|
|
|
|
Assert.That(twoOrFour.Count(x => x.Get<Gamma>().Record.Frap == "four"), Is.EqualTo(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void EmptyWherePredicateRequiresRecord() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
var gammas = _manager.Query().Join<GammaRecord>().List();
|
|
|
|
|
var deltas = _manager.Query().Join<DeltaRecord>().List();
|
|
|
|
|
|
|
|
|
|
Assert.That(gammas.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(deltas.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(gammas.AsPart<Gamma>().Single().Record.Frap, Is.EqualTo("the frap value"));
|
|
|
|
|
Assert.That(deltas.AsPart<Delta>().Single().Record.Quux, Is.EqualTo("the quux value"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void OrderMaySortOnJoinedRecord() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "one"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "two"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "three"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "four"; });
|
|
|
|
|
_session.Flush();
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
var ascending = _manager.Query("gamma")
|
|
|
|
|
.OrderBy<GammaRecord, string>(x => x.Frap)
|
|
|
|
|
.List<Gamma>().ToList();
|
|
|
|
|
|
|
|
|
|
Assert.That(ascending.Count(), Is.EqualTo(5));
|
|
|
|
|
Assert.That(ascending.First().Record.Frap, Is.EqualTo("four"));
|
|
|
|
|
Assert.That(ascending.Last().Record.Frap, Is.EqualTo("two"));
|
|
|
|
|
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
var descending = _manager.Query<Gamma, GammaRecord>()
|
|
|
|
|
.OrderByDescending(x => x.Frap)
|
|
|
|
|
.List().ToList();
|
|
|
|
|
|
|
|
|
|
Assert.That(descending.Count(), Is.EqualTo(5));
|
|
|
|
|
Assert.That(descending.First().Record.Frap, Is.EqualTo("two"));
|
|
|
|
|
Assert.That(descending.Last().Record.Frap, Is.EqualTo("four"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SkipAndTakeProvidePagination() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "one"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "two"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "three"; });
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => { init.Record.Frap = "four"; });
|
|
|
|
|
_session.Flush();
|
|
|
|
|
|
|
|
|
|
var reverseById = _manager.Query()
|
|
|
|
|
.OrderByDescending<GammaRecord, int>(x => x.Id)
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var subset = _manager.Query()
|
|
|
|
|
.OrderByDescending<GammaRecord, int>(x => x.Id)
|
|
|
|
|
.Slice(2, 3);
|
|
|
|
|
|
|
|
|
|
Assert.That(subset.Count(), Is.EqualTo(3));
|
|
|
|
|
Assert.That(subset.First().Id, Is.EqualTo(reverseById.Skip(2).First().Id));
|
|
|
|
|
Assert.That(subset.Skip(1).First().Id, Is.EqualTo(reverseById.Skip(3).First().Id));
|
|
|
|
|
Assert.That(subset.Skip(2).First().Id, Is.EqualTo(reverseById.Skip(4).First().Id));
|
|
|
|
|
|
|
|
|
|
}
|
2009-12-31 10:14:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryShouldJoinVersionedRecords() {
|
|
|
|
|
AddSampleData();
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => {
|
|
|
|
|
init.Record.Frap = "one";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "1";
|
|
|
|
|
});
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => {
|
|
|
|
|
init.Record.Frap = "two";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "2";
|
|
|
|
|
});
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => {
|
|
|
|
|
init.Record.Frap = "three";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "3";
|
|
|
|
|
});
|
|
|
|
|
_manager.Create<Gamma>("gamma", init => {
|
|
|
|
|
init.Record.Frap = "four";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "4";
|
|
|
|
|
});
|
|
|
|
|
_session.Flush();
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
var results = _manager.Query<Epsilon, EpsilonRecord>()
|
|
|
|
|
.Where(x => x.Quad == "2" || x.Quad == "3")
|
|
|
|
|
.OrderByDescending(x => x.Quad)
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(results.Count(), Is.EqualTo(2));
|
|
|
|
|
Assert.That(results.First().Record, Has.Property("Quad").EqualTo("3"));
|
|
|
|
|
Assert.That(results.Last().Record, Has.Property("Quad").EqualTo("2"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void AddGammaVersions() {
|
|
|
|
|
var gamma1 = _manager.Create<ContentItem>("gamma", init => {
|
|
|
|
|
init.As<Gamma>().Record.Frap = "one";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "v1";
|
|
|
|
|
});
|
|
|
|
|
_session.Flush();
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
var gamma2 = _manager.Get(gamma1.Id, VersionOptions.DraftRequired);
|
|
|
|
|
gamma2.As<Gamma>().Record.Frap = "two";
|
|
|
|
|
gamma2.As<Epsilon>().Record.Quad = "v2";
|
|
|
|
|
_session.Flush();
|
|
|
|
|
_session.Clear();
|
|
|
|
|
|
|
|
|
|
var gamma3 = _manager.Create<ContentItem>("gamma", init => {
|
|
|
|
|
init.As<Gamma>().Record.Frap = "three";
|
|
|
|
|
init.As<Epsilon>().Record.Quad = "v3";
|
|
|
|
|
});
|
|
|
|
|
_session.Flush();
|
2010-05-17 14:34:08 +08:00
|
|
|
|
_session.Clear();
|
2009-12-31 10:14:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryShouldOnlyReturnPublishedByDefault() {
|
|
|
|
|
AddGammaVersions();
|
|
|
|
|
|
|
|
|
|
var list1 = _manager.Query<Gamma>()
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v1")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list2 = _manager.Query<Gamma>()
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v2")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list3 = _manager.Query<Gamma>()
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v3")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listOne = _manager.Query<Gamma>()
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "one")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listTwo = _manager.Query<Gamma>()
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "two")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listThree = _manager.Query<Gamma>()
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "three")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(list1.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(list2.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(list3.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listOne.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(listTwo.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listThree.Count(), Is.EqualTo(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryForLatestShouldNotReturnEarlierVersions() {
|
|
|
|
|
AddGammaVersions();
|
|
|
|
|
|
|
|
|
|
var list1 = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v1")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list2 = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v2")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list3 = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v3")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listOne = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "one")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listTwo = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "two")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listThree = _manager.Query<Gamma>(VersionOptions.Latest)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "three")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(list1.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(list2.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(list3.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listOne.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(listTwo.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listThree.Count(), Is.EqualTo(1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryForDraftShouldOnlyReturnLatestThatIsNotPublished() {
|
|
|
|
|
AddGammaVersions();
|
|
|
|
|
|
|
|
|
|
var list1 = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v1")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list2 = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v2")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list3 = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v3")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listOne = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "one")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listTwo = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "two")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listThree = _manager.Query<Gamma>(VersionOptions.Draft)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "three")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(list1.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(list2.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(list3.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(listOne.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(listTwo.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listThree.Count(), Is.EqualTo(0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void QueryForAllShouldReturnMultipleQualifiedVersions() {
|
|
|
|
|
AddGammaVersions();
|
|
|
|
|
|
|
|
|
|
var list1 = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v1")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list2 = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v2")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var list3 = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<EpsilonRecord>(x => x.Quad == "v3")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listOne = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "one")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listTwo = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "two")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
var listThree = _manager.Query<Gamma>(VersionOptions.AllVersions)
|
|
|
|
|
.Where<GammaRecord>(x => x.Frap == "three")
|
|
|
|
|
.List();
|
|
|
|
|
|
|
|
|
|
Assert.That(list1.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(list2.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(list3.Count(), Is.EqualTo(1));
|
|
|
|
|
Assert.That(listOne.Count(), Is.EqualTo(0));
|
|
|
|
|
Assert.That(listTwo.Count(), Is.EqualTo(2));
|
|
|
|
|
Assert.That(listThree.Count(), Is.EqualTo(1));
|
|
|
|
|
}
|
2009-12-31 03:16:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|