public void EqTest() { var fp = FragPipe.Instance; //Get some sender var fs1 = new FragmentingSender(100, fp); var fs2 = new FragmentingSender(100, fp); Assert.AreEqual(fs1, fs2); Assert.AreEqual(fs1.GetHashCode(), fs2.GetHashCode()); //urlencode sender:pipe Assert.AreEqual(fs1.ToUri(), "sender:frag?max=100&wrap=sender%3apipe"); Assert.AreEqual(fs1, SenderFactory.CreateInstance(null, fs1.ToUri()), "uri RT"); }
public static ISender CreateInstance(object ctx, string uri) { string scheme; var kv = SenderFactory.DecodeUri(uri, out scheme); if (scheme.Equals("frag")) { int max = System.Int32.Parse(kv["max"]); string wuri = kv["wrap"]; ISender wrapped = SenderFactory.CreateInstance(ctx, wuri); return(new FragmentingSender(max, wrapped)); } else { throw new System.Exception("Unrecognized scheme: " + scheme); } }