public void TestFailingExpressions() { // tests expressions that fail to evaluate on the server using (Reference <ILogger> loggerRef = Reference <ILogger> .Create(new TraceLogger(true))) { NamedValueSet serverSettings = new NamedValueSet(); serverSettings.Set(CfgPropName.NodeType, (int)NodeType.Router); serverSettings.Set(CfgPropName.EnvName, "UTT"); using (CoreServer server = new CoreServer(loggerRef, serverSettings)) { server.Start(); // save using (ICoreClient client1 = new CoreClientFactory(loggerRef).SetEnv("UTT").Create()) { client1.SaveObject(new TestData(), "AllValuesNotNull", new NamedValueSet("StrValue/String=A|NumValue/Int32=0"), TimeSpan.MaxValue); client1.SaveObject(new TestData(), "NumValueIsNull", new NamedValueSet("StrValue/String=A"), TimeSpan.MaxValue); client1.SaveObject(new TestData(), "StrValueIsNull", new NamedValueSet("NumValue/Int32=0"), TimeSpan.MaxValue); client1.SaveObject(new TestData(), "AllValuesAreNull", null, TimeSpan.MaxValue); } // load using expression using (ICoreClient client2 = new CoreClientFactory(loggerRef).SetEnv("UTT").Create()) { client2.DebugRequests = true; { var items = client2.LoadObjects <TestData>(Expr.BoolAND(Expr.IsEQU("StrValue", "A"), Expr.IsEQU("NumValue", 0))); Assert.AreEqual(1, items.Count); } { var items = client2.LoadObjects <TestData>(Expr.BoolOR(Expr.IsEQU("StrValue", "A"), Expr.IsEQU("NumValue", 0))); Assert.AreEqual(3, items.Count); } { // unknown/missing string property var items = client2.LoadObjects <TestData>(Expr.BoolOR(Expr.IsEQU("StrValue", "A"), Expr.IsEQU("XValue", "X"))); Assert.AreEqual(2, items.Count); } { // unknown/missing non-string property var items = client2.LoadObjects <TestData>(Expr.BoolOR(Expr.IsEQU("StrValue", "A"), Expr.IsEQU("YValue", 1))); Assert.AreEqual(2, items.Count); } { // property missing var items = client2.LoadObjects <TestData>(Expr.IsNull("StrValue")); Assert.AreEqual(2, items.Count); } { // property has value var items = client2.LoadObjects <TestData>(Expr.IsNotNull("StrValue")); Assert.AreEqual(2, items.Count); } { var items = client2.LoadObjects <TestData>(Expr.StartsWith("StrValue", "A")); Assert.AreEqual(2, items.Count); } { var items = client2.LoadObjects <TestData>(Expr.BoolOR(Expr.StartsWith("StrValue", "A"), Expr.IsEQU("NumValue", 0))); Assert.AreEqual(3, items.Count); } } } } }
public void TestFileImportServer() { // start the server, connect a client1, and shutdown using (ILogger logger = new TraceLogger(true)) { const EnvId env = EnvId.Utt_UnitTest; var logRef = Reference <ILogger> .Create(logger); var random = new Random(Environment.TickCount); int port = random.Next(8000, 8099); using (var server = new CoreServer(logRef, env.ToString(), NodeType.Router, port, WcfConst.NetTcp)) { // start server server.Start(); // connect client using (ICoreClient client = new CoreClientFactory(logRef).SetEnv(env.ToString()).Create()) { // create test import rule var rule = new FileImportRule { RuleName = "UnitTest", SourceLocation = @"C:\windows\system32", TargetLocation = @"c:\temp", CopyFilePatterns = "notep*.exe" }; var name = rule.RuleName; // start the file import server //DateTimeOffset waitCompleted; var target = new FileImportServer { Client = Reference <ICoreClient> .Create(client) }; client.SaveObject(rule, "UnitTest", null, true, TimeSpan.MaxValue); using (target)//logger, env { target.Start(); Thread.Sleep(TimeSpan.FromSeconds(5)); //waitCompleted = DateTimeOffset.Now; target.Stop(); } { var results1 = client.LoadItem <FileImportRule>(name); Assert.IsNotNull(results1); List <ImportRuleResult> results = client.LoadObjects <ImportRuleResult>(Expr.ALL); Assert.AreEqual(1, results.Count); ImportRuleResult result = results[0]; Assert.AreEqual("UnitTest", result.RuleName); Assert.AreEqual("Completed", result.ImportResult); Assert.AreEqual(1, result.FileNames.Length); Assert.AreEqual("notepad.exe", result.FileNames[0].ToLower()); } { List <ImportFileResult> results = client.LoadObjects <ImportFileResult>(Expr.ALL); Assert.AreEqual(1, results.Count); ImportFileResult result = results[0]; Assert.AreEqual("UnitTest", result.RuleName); Assert.AreEqual("Completed", result.ImportResult); Assert.AreEqual("notepad.exe", result.FileName.ToLower()); } } // explicit shutdown // - not necessary in a "using" block but run it anyway server.Stop(); } } }