chiark / gitweb /
apitest: Break out place_library_load_markers
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 15 May 2021 18:24:45 +0000 (19:24 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 15 May 2021 18:32:39 +0000 (19:32 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/at-otter.rs

index 6da3413a13865f5b9cff779752e5de95bf6b0d17..da8eced88bd11ec20b2e74ca7c0bb36a29f14839 100644 (file)
@@ -492,6 +492,25 @@ impl Ctx {
     self.su().ds.otter_prctx(&self.prctx, &args)?
   }
 
+  #[throws(Explode)]
+  fn place_library_load_markers(&mut self) -> Session {
+    let mut session = self.connect_player(&self.alice)?;
+    let pieces = session.pieces::<PIA>()?;
+    let llm = pieces.into_iter()
+      .filter(|pi| pi.info["desc"] == "a library load area marker")
+      .collect::<ArrayVec<_>>();
+    let llm: [_;2] = llm.into_inner().unwrap();
+    dbgc!(&llm);
+
+    for (llm, &pos) in izip!(&llm, [PosC::new(5,5), PosC::new(50,25)].iter())
+    {
+      session.api_piece(GH::With, &llm.id, pos)?;
+    }
+
+    session.synch()?;
+    session
+  }
+
   #[throws(Explode)]
   fn library_load(&mut self) {
     prepare_game(&self.su().ds, &self.prctx, TABLE)?;
@@ -513,20 +532,7 @@ impl Ctx {
     assert_eq!(add_err.downcast::<ExitStatusError>()?.0.code(),
                Some(EXIT_NOTFOUND));
 
-    let mut session = self.connect_player(&self.alice)?;
-    let pieces = session.pieces::<PIA>()?;
-    let llm = pieces.into_iter()
-      .filter(|pi| pi.info["desc"] == "a library load area marker")
-      .collect::<ArrayVec<_>>();
-    let llm: [_;2] = llm.into_inner().unwrap();
-    dbgc!(&llm);
-
-    for (llm, &pos) in izip!(&llm, [PosC::new(5,5), PosC::new(50,25)].iter())
-    {
-      session.api_piece(GH::With, &llm.id, pos)?;
-    }
-
-    session.synch()?;
+    let mut session = self.place_library_load_markers()?;
 
     self.otter(&command)
       .expect("library-add failed after place!");