public void DetectsMissingPropValue() { using (var gel = new GlobalLock()) { var env = new Ex.Env(); var runtime = Java.Lang.Runtime.GetRuntime(); Java.Lang.Process process = null; runtime.MockExec = (p) => { if (p.Count() == 1 && p[0] == "getprop") { process = new Java.Lang.Process(); process.MockExecArgs = p; process.MockStdOutput = new[] { "[fu.bar]: [foobarr]", "[fu.bar]: [fubar]" }; return(process); } throw new Exception($"Could not execute: {p}"); }; var i = new ShouldNotHavePropValues().Init(env, "TEST", "fu.bar=foobar"); Assert.True(i.Ok); i = new ShouldNotHavePropValues().Init(env, "TEST", "foo.bar=fubar"); Assert.True(i.Ok); } }
public void HasCorrectId() { using (var gel = new GlobalLock()) { var env = new Ex.Env(); var i = new ShouldNotHavePropValues().Init(env, "TEST", "fu=bar"); Assert.Equal("SHOULD_NOT_HAVE_PROP_VALUES_TEST", i.Id); } }
public void IsRobust() { using (var gel = new GlobalLock()) { var env = new Ex.Env(); string message = null; Exception exception = null; env.Reporter.OnExceptionReported = (msg, ex) => { message = msg; exception = ex; }; var runtime = Java.Lang.Runtime.GetRuntime(); Java.Lang.Process process = null; runtime.MockExec = (p) => { if (p.Count() == 1 && p[0] == "getprop") { process = new Java.Lang.Process(); process.MockExecArgs = p; process.MockStdOutput = new[] { "[fu.bar]: [fubar]" }; return(process); } throw new Exception($"Could not execute: {p}"); }; var i = new ShouldNotHavePropValues().Init(env, "TEST", "fubar"); Assert.True(i.Ok); Assert.Equal("ShouldNotHavePropValues init bombed for TEST=fubar", message); Assert.Equal(exception.GetType().FullName, typeof(ArgumentException).FullName); Assert.Equal("fubar", exception.Message); runtime.MockExec = (p) => { throw new Exception("BOOM!"); }; i = new ShouldNotHavePropValues().Init(env, "TEST", "fu.bar=fubar"); Assert.True(i.Ok); Assert.Equal("HasPropValue bombed for TEST (fu.bar=fubar)", message); Assert.Equal("BOOM!", exception.Message); } }